SensusAgent/docs/deploy.md

2.8 KiB
Raw Blame History

Деплой

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

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

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

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

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

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

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 юнита: Разместите юнит-файл по пути /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 определяет целевые хосты и параметры подключения