Initial commit: Ansible role for Hysteria2 VPN server deployment.

Includes install/update/uninstall playbooks, Makefile, vault-based SSH credentials, per-server and global HTML export with QR codes.
This commit is contained in:
Sergey Antropoff
2026-07-01 02:02:58 +03:00
commit 6f96a26bed
28 changed files with 2027 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
---
# Email для Let's Encrypt (ACME)
hysteria2_acme_email: admin@example.com
# Длина автогенерируемых паролей (pwgen)
hysteria2_password_length: 40
# Обновлять систему перед установкой (apt update && apt upgrade)
hysteria2_upgrade_system: true
# Локальная папка для URL и QR-кодов (на машине, где запускается ansible-playbook)
hysteria2_output_dir: "{{ playbook_dir }}/output"
# Имя подпапки для каждого сервера (по умолчанию — inventory_hostname)
# hysteria2_output_name: "{{ inventory_hostname }}"
# Открывать output/index.html в браузере после install/update/export
# hysteria2_open_browser: true
# Порт Hysteria2
hysteria2_listen_port: 443
# Открывать порты в ufw (80/tcp, 443/tcp, 443/udp)
hysteria2_configure_firewall: true
@@ -0,0 +1,5 @@
---
# Подключение vault-переменных к хостам группы hysteria2_servers.
# Файл group_vars/hysteria2_servers/vault.yml должен быть зашифрован (make vault-encrypt).
# Проброс VPN-паролей из vault в переменные роли (опционально)
@@ -0,0 +1,18 @@
---
# Пароли VPS (SSH) и VPN-пользователей.
# 1. Скопируйте: cp group_vars/hysteria2_servers/vault.yml.example group_vars/hysteria2_servers/vault.yml
# 2. Заполните значения
# 3. Зашифруйте: make vault-encrypt
#
# Ключи должны совпадать с именами хостов в inventory/hosts.yml
vault_ssh_passwords:
vps-de: "CHANGE_ME_root_password_vps_de"
vps-nl: "CHANGE_ME_root_password_vps_nl"
# Опционально: фиксированные пароли VPN по серверам
# vault_hysteria2_user_passwords:
# vps-de:
# friend: "Aingae0Okit1eek4eeZahFohVei4akee"
# vps-nl:
# alice: "CustomAlicePassword40chars................"