SensusAgent/docs/deploy.md

77 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### Деплой
Автор: Сергей Антропов, сайт: https://devops.org.ru
Варианты развертывания:
- Docker Compose: файл `docker-compose.yml`
- Systemd сервис: через raw-роль `runner/deploy-service-raw` (юнит находится в `runner/sensusagent.service` при необходимости)
- Ansible-плейбуки (без Python на целевом хосте): `runner/deploy-raw`, `runner/delete-raw`, а также service-варианты `*-raw`
Подготовка удаленного хоста:
- Доступ по 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 (raw):
```bash
make deploy-service
```
Остановка и очистка systemd-варианта (raw):
```bash
make delete-service
```
Прямое использование 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` определяет целевые хосты и параметры подключения