- Удален тестовый скрипт runner/test-config-generation.sh - Обновлен docs/overview.md: - Добавлена информация о гибкой конфигурации коллекторов - Добавлена информация о командах обновления - Обновлено описание структуры runner/ - Добавлена ссылка на docs/ansible_groups.md - Обновлен docs/deploy.md: - Убраны ссылки на устаревшие -raw папки - Добавлена информация о командах обновления - Добавлен раздел о гибкой конфигурации коллекторов - Добавлены примеры развертывания на конкретных группах - Исправлен порядок команд в Makefile (перенесены в правильное место) Автор: Сергей Антропов Сайт: https://devops.org.ru
4.3 KiB
4.3 KiB
Деплой
Автор: Сергей Антропов, сайт: 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