Плейбуки¶
Деплой 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
Оптимизация¶
sysctl, ulimits, Docker daemon.json, RPS, nginx workers, journald, disable services.
Kernel tuning (отдельно)¶
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 |