- Удален тестовый скрипт runner/test-config-generation.sh - Обновлен docs/overview.md: - Добавлена информация о гибкой конфигурации коллекторов - Добавлена информация о командах обновления - Обновлено описание структуры runner/ - Добавлена ссылка на docs/ansible_groups.md - Обновлен docs/deploy.md: - Убраны ссылки на устаревшие -raw папки - Добавлена информация о командах обновления - Добавлен раздел о гибкой конфигурации коллекторов - Добавлены примеры развертывания на конкретных группах - Исправлен порядок команд в Makefile (перенесены в правильное место) Автор: Сергей Антропов Сайт: https://devops.org.ru
115 lines
4.3 KiB
Markdown
115 lines
4.3 KiB
Markdown
### Деплой
|
||
|
||
Автор: Сергей Антропов, сайт: 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):
|
||
```bash
|
||
make deploy
|
||
```
|
||
Что делает команда:
|
||
- Собирает linux-бинарь агента и коллектора в Docker
|
||
- Копирует `bin/agent/agent`, `bin/agent/config.yaml`, `bin/agent/collectors/*` на удаленный хост в `/opt/sensusagent`
|
||
- Обеспечивает зависимости (например, `sysstat`, `smartmontools` и др.)
|
||
|
||
Удаление установленного агента (без systemd):
|
||
```bash
|
||
make delete
|
||
```
|
||
|
||
Деплой и запуск через systemd:
|
||
```bash
|
||
make deploy-service
|
||
```
|
||
|
||
Остановка и очистка systemd-варианта:
|
||
```bash
|
||
make delete-service
|
||
```
|
||
|
||
Обновление агента:
|
||
```bash
|
||
# Обновление systemd-сервиса (рекомендуется)
|
||
make update-service
|
||
|
||
# Обновление агента без systemd
|
||
make update
|
||
```
|
||
|
||
Прямое использование systemd юнита:
|
||
Разместите юнит-файл по пути `/etc/systemd/system/sensusagent.service` со следующим содержимым:
|
||
```ini
|
||
[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
|
||
```
|
||
|
||
Команды управления:
|
||
```bash
|
||
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`)
|
||
|
||
### Развертывание на конкретной группе:
|
||
```bash
|
||
# Только на 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`
|
||
|