77 lines
2.9 KiB
Markdown
77 lines
2.9 KiB
Markdown
### Деплой
|
||
|
||
Автор: Сергей Антропов, сайт: 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` определяет целевые хосты и параметры подключения
|
||
|