SensusAgent/docs/deploy.md
Sergey Antropoff d1da51d875 docs: обновлена документация проекта
- Удален тестовый скрипт runner/test-config-generation.sh
- Обновлен docs/overview.md:
  - Добавлена информация о гибкой конфигурации коллекторов
  - Добавлена информация о командах обновления
  - Обновлено описание структуры runner/
  - Добавлена ссылка на docs/ansible_groups.md

- Обновлен docs/deploy.md:
  - Убраны ссылки на устаревшие -raw папки
  - Добавлена информация о командах обновления
  - Добавлен раздел о гибкой конфигурации коллекторов
  - Добавлены примеры развертывания на конкретных группах

- Исправлен порядок команд в Makefile (перенесены в правильное место)

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-09-15 14:58:41 +03:00

4.3 KiB
Raw Permalink Blame History

Деплой

Автор: Сергей Антропов, сайт: https://devops.org.ru

Варианты развертывания:

  • Docker Compose: файл docker-compose.yml
  • Systemd сервис: через роль runner/deploy-service (юнит находится в runner/sensusagent.service при необходимости)
  • Ansible-плейбуки (без Python на целевом хосте): runner/deploy, runner/delete, а также service-варианты
  • Гибкая конфигурация коллекторов через Ansible группы

Подготовка удаленного хоста:

  • Доступ по SSH (ключ находится у оператора)
  • Права sudo для установки зависимостей

Быстрый деплой (одноразовый запуск агента без systemd, raw):

make deploy

Что делает команда:

  • Собирает linux-бинарь агента и коллектора в Docker
  • Копирует bin/agent/agent, bin/agent/config.yaml, bin/agent/collectors/* на удаленный хост в /opt/sensusagent
  • Обеспечивает зависимости (например, sysstat, smartmontools и др.)

Удаление установленного агента (без systemd):

make delete

Деплой и запуск через systemd:

make deploy-service

Остановка и очистка systemd-варианта:

make delete-service

Обновление агента:

# Обновление systemd-сервиса (рекомендуется)
make update-service

# Обновление агента без systemd
make update

Прямое использование systemd юнита: Разместите юнит-файл по пути /etc/systemd/system/sensusagent.service со следующим содержимым:

[Unit]
Description=SensusAgent metrics collector
After=network.target

[Service]
Type=simple
Environment=CONFIG_PATH=/opt/sensusagent/config.yaml
ExecStart=/opt/sensusagent/agent --mode stdout
Restart=on-failure
RestartSec=3
User=nobody
Group=nogroup

[Install]
WantedBy=multi-user.target

Команды управления:

sudo systemctl daemon-reload
sudo systemctl enable --now sensusagent
sudo systemctl status sensusagent
sudo journalctl -u sensusagent -f

Права и директории:

  • Бинарь и конфиг по умолчанию устанавливаются в /opt/sensusagent
  • Убедитесь, что у пользователя сервиса есть права на чтение конфигов и исполнение бинарей

Переменные Ansible:

  • LOCAL_BIN_DIR — локальный каталог с собранным агентом (по умолчанию ./bin/agent)
  • remote_dir — удаленный каталог установки (по умолчанию /opt/sensusagent в плейбуках)

Инвентори:

  • Файл runner/inventory.ini определяет целевые хосты и параметры подключения

Гибкая конфигурация коллекторов

Проект поддерживает гибкую настройку коллекторов через Ansible группы:

Группы хостов:

  • proxmox - Proxmox ноды (коллекторы: proxcluster, proxnode, proxvms, uptime)
  • proxvms - VM/контейнеры Proxmox (коллекторы: proxvmsystem, uptime)
  • standalone - автономные серверы (коллекторы: system, hba, sensors, uptime)

Развертывание на конкретной группе:

# Только на Proxmox нодах
make deploy-service --limit proxmox

# Только на VM/контейнерах
make deploy-service --limit proxvms

# Только на автономных серверах
make deploy-service --limit standalone

Конфигурация групп:

  • Переменные групп: runner/group_vars/
  • Шаблоны конфигурации: runner/templates/
  • Автоматическая генерация config.yaml на основе группы

Подробнее см. docs/ansible_groups.md