Перейти к содержанию

Плейбуки

Деплой VPN сервера

ansible-playbook -i inventory/servers.ini playbooks/vpn.yml \
  --limit <hostname> --vault-password-file .vault_pass

Полный цикл: SSH → UFW → sysctl → nginx → node_exporter → 3x-ui → optimization.

Только для новых серверов

На существующих серверах vpn.yml безопасен (x-ui.db не перезаписывается), но для обновлений используй update_3xui_xray.yml.

Обновление 3x-ui

ansible-playbook -i inventory/servers.ini playbooks/update_3xui_xray.yml \
  --limit <hostname> --vault-password-file .vault_pass

Бэкап DB → stop → rm → start новой версии → integrity check.

Откат 3x-ui

ansible-playbook -i inventory/servers.ini playbooks/rollback_3xui_xray.yml \
  --limit <hostname> --vault-password-file .vault_pass

SSH ключи

# Добавить ключ на все серверы
ansible-playbook -i inventory/servers.ini playbooks/add_ssh_key.yml --ask-pass

# Удалить ключ
ansible-playbook -i inventory/servers.ini playbooks/remove_ssh_key.yml --ask-pass

# Применить роль SSH (из group_vars — ключи + sshd hardening)
ansible-playbook -i inventory/servers.ini playbooks/ssh.yml

Мониторинг

# Node exporter
ansible-playbook -i inventory/servers.ini playbooks/node_exporter.yml

# Grafana + Prometheus
ansible-playbook -i inventory/servers.ini playbooks/grafana.yml --vault-password-file .vault_pass

# Node exporter на WL серверах
ansible-playbook -i inventory/servers.ini playbooks/setup_node_exporter_whitelist.yml --vault-password-file .vault_pass

Оптимизация

ansible-playbook -i inventory/servers.ini vpn_xray_optimization.yml --limit <hostname>

sysctl, ulimits, Docker daemon.json, RPS, nginx workers, journald, disable services.

Kernel tuning (отдельно)

ansible-playbook -i inventory/servers.ini playbooks/sysctl.yml --limit <hostname>

37 sysctl params + BBR + conntrack + ulimits 65535 + systemd limits.

Telegram proxy

ansible-playbook -i inventory/servers.ini playbooks/setup-proxy-tg.yml --vault-password-file .vault_pass

MTProto (mtg) + SOCKS5 (Dante) + DNS (Unbound) на серверах группы [telegram-proxies].

Полный список

Плейбук Назначение Группа
vpn.yml Полный деплой VPN vpn
update_3xui_xray.yml Обновление 3x-ui vpn
rollback_3xui_xray.yml Откат 3x-ui vpn
ssh.yml SSH hardening + ключи all
sysctl.yml Kernel tuning vpn
ufw.yml Firewall vpn
node_exporter.yml Мониторинг all
grafana.yml Grafana + Prometheus grafana
remnawave.yml Деплой Remnawave ноды vpn_remnawave (или --limit)
setup-proxy-tg.yml Telegram proxy telegram-proxies
setup_node_exporter_whitelist.yml Node exporter на WL серверах явный список хостов
naiveproxy.yml NaiveProxy naiveproxy_servers ⚠️ группа не определена в inventory
vaultwarden.yml Менеджер паролей km-tools01a ⚠️ группа не определена (хост есть в internal_servers)
xui-ssl.yml Обновление XUI cert xray_servers ⚠️ группа не определена в inventory
gitlab.yml GitLab gitlab ⚠️ группа не определена в inventory
loki.yml Loki loki ⚠️ группа не определена в inventory
prometheus.yml Prometheus prometheus ⚠️ группа не определена в inventory
node_exporter_mysql.yml Node exporter (MySQL) db ⚠️ группа не определена в inventory
vpn_xray_optimization.yml Performance tuning vpn

Сломанные / неиспользуемые плейбуки

Следующие плейбуки ссылаются на группы, которых нет в inventory/servers.ini:

Плейбук Группа Статус
naiveproxy.yml naiveproxy_servers Не определена — плейбук упадёт без --limit
vaultwarden.yml km-tools01a Хост есть в [internal_servers], но не как отдельная группа
xui-ssl.yml xray_servers Не определена — есть [xray] с другим именем
gitlab.yml gitlab Не определена — хост km-gitlab01 в [infra] и [internal_servers]
loki.yml loki Не определена
prometheus.yml prometheus Не определена — Prometheus на сервере из [grafana]
node_exporter_mysql.yml db Не определена — используй [api-db] или --limit