- group_vars/all/main.yml: пояснения к глобальным настройкам K3S, сети, CNI, kube-vip, chrony, ротации сертификатов, сервисным пользователям и пакетам. - group_vars/all/addons.yml: комментарии над флагами addon_* и активными блоками (NFS, CSI NFS, ingress-nginx, cert-manager, Databasus, MinIO, etcd backup и др.); исправлена битая строка-разделитель в секции Gitea Actions. - group_vars/all/vault.yml.example: описание назначения каждого секрета. - host_vars (master01, worker01, rpi01): пояснения к labels, taints и k3s_extra_server_args. - inventory/hosts.ini: комментарии к группам и строкам нод, пояснение nfs_server; исправлена повреждённая линия-разделитель. - addons/*/role/defaults/main.yml: русские комментарии над переменными (в т.ч. Harbor, Authelia, Istio, Prometheus, Vault, Jenkins, DNS-аддоны и др.). - addons/csi-nfs/role/defaults/main.yml: исправлено имя csi_nfs_reclaim_policy (опечатка с кириллической «М» в имени ключа). Рабочий vault.yml не менялся (секреты / ansible-vault).
Hysteria2 Server
Устанавливает Hysteria2 VPN-сервер на удалённый VPS. На выходе даёт готовый URL для вставки в Shadowrocket, NekoBox, Hiddify или vault_hysteria2_url (Prowlarr sidecar).
Что устанавливается
- Бинарник
hysteriaпоследней версии с GitHub - Системный пользователь
hysteria - Конфиг в
/etc/hysteria/config.yaml - systemd-сервис
hysteria2(autostart) - Правило firewall (ufw / firewalld)
- TLS: self-signed cert или Let's Encrypt (ACME) или свой сертификат
Быстрый старт
1. Добавить VPS в inventory
# inventory/hosts.ini
[hysteria2_server]
myvps ansible_host=1.2.3.4 ansible_user=root
2. Vault секреты
make vault-edit
# group_vars/all/vault.yml
vault_hysteria2_server_password: "my-secure-password-32chars+"
vault_hysteria2_obfs_password: "obfs-secret" # если obfs включён
3. Деплой
С SSH-ключом (рекомендуется):
make addon-hysteria2-server
С SSH-паролем (ввод в терминале):
make addon-hysteria2-server ARGS="-k"
С SSH-паролем + sudo-паролем:
make addon-hysteria2-server ARGS="-k -K"
На конкретный хост (без inventory):
make addon-hysteria2-server ARGS="-i '1.2.3.4,' -u root -k"
После деплоя Ansible выведет готовый URL:
vault_hysteria2_url: "hysteria2://password@1.2.3.4:443?insecure=1#MyVPS"
Конфигурация
Режимы TLS
Self-signed (по умолчанию) — без домена, IP-only
# group_vars/all/main.yml
hysteria2_server_tls_mode: "selfsigned"
Клиент подключается с insecure=1. URL автоматически получает ?insecure=1.
ACME — Let's Encrypt (нужен домен)
hysteria2_server_tls_mode: "acme"
hysteria2_server_domain: "vpn.example.com"
hysteria2_server_acme_email: "admin@example.com"
Требования: порт 80 открыт, DNS A-запись указывает на VPS. Hysteria2 сам получает и обновляет сертификат.
Custom — свои cert/key файлы
hysteria2_server_tls_mode: "custom"
hysteria2_server_tls_cert_path: "/etc/hysteria/server.crt"
hysteria2_server_tls_key_path: "/etc/hysteria/server.key"
Сертификаты должны уже лежать на сервере до запуска роли.
Obfuscation (salamander)
Скрывает протокол от DPI — важно если Hysteria2 блокируется провайдером:
hysteria2_server_obfs_enabled: true
# vault.yml
vault_hysteria2_obfs_password: "random-obfs-phrase"
Лимиты полосы на клиента
hysteria2_server_up_mbps: 100 # исходящий с сервера (= входящий у клиента)
hysteria2_server_down_mbps: 100 # входящий на сервер (= исходящий у клиента)
0 — без ограничений.
Все переменные
hysteria2_server_version: "" # "" = автоопределение последней версии
hysteria2_server_port: 443
hysteria2_server_password: "{{ vault_hysteria2_server_password }}"
hysteria2_server_tls_mode: "selfsigned" # selfsigned | acme | custom
hysteria2_server_domain: ""
hysteria2_server_acme_email: ""
hysteria2_server_tls_cert_path: "/etc/hysteria/server.crt"
hysteria2_server_tls_key_path: "/etc/hysteria/server.key"
hysteria2_server_obfs_enabled: false
hysteria2_server_obfs_password: "{{ vault_hysteria2_obfs_password | default('') }}"
hysteria2_server_masquerade_enabled: true
hysteria2_server_masquerade_url: "https://bing.com/"
hysteria2_server_up_mbps: 0
hysteria2_server_down_mbps: 0
hysteria2_server_name: "MyVPS" # метка в URL (для клиентов)
Подключение SSH
Ключ (рекомендуется)
# Скопировать ключ на VPS
ssh-copy-id root@1.2.3.4
# Деплой
make addon-hysteria2-server
Пароль
# Ввод пароля в терминале:
make addon-hysteria2-server ARGS="-k"
Или хранить в vault (не рекомендуется для SSH):
# inventory/hosts.ini
[hysteria2_server]
myvps ansible_host=1.2.3.4 ansible_user=root ansible_ssh_pass="{{ vault_hysteria2_vps_ssh_password }}"
Нестандартный SSH порт
# inventory/hosts.ini
[hysteria2_server]
myvps ansible_host=1.2.3.4 ansible_user=root ansible_port=2222
Примеры inventory
Один VPS, root + ключ
[hysteria2_server]
myvps ansible_host=1.2.3.4 ansible_user=root
Один VPS, обычный пользователь + sudo
[hysteria2_server]
myvps ansible_host=1.2.3.4 ansible_user=ubuntu
make addon-hysteria2-server ARGS="-K" # -K = prompt sudo password
Несколько серверов (мульти-регион)
[hysteria2_server]
vps-nl ansible_host=1.2.3.4 ansible_user=root
vps-de ansible_host=5.6.7.8 ansible_user=root
Что делать с URL после деплоя
Ansible выведет в конце:
vault_hysteria2_url: "hysteria2://mypassword@1.2.3.4:443?insecure=1&obfs=salamander&obfs-password=secret#MyVPS"
Вариант 1 — вставить в vault для Prowlarr:
# group_vars/all/vault.yml
vault_hysteria2_url: "hysteria2://mypassword@1.2.3.4:443?insecure=1#MyVPS"
Затем: make addon-mediaserver
Вариант 2 — вставить в Shadowrocket / NekoBox / Hiddify:
Скопируй строку hysteria2://... и добавь как новый профиль в клиент.
Управление сервисом
# Статус
ssh root@1.2.3.4 systemctl status hysteria2
# Логи в реальном времени
ssh root@1.2.3.4 journalctl -u hysteria2 -f
# Перезапуск после изменения конфига
ssh root@1.2.3.4 systemctl restart hysteria2
# Обновить до последней версии
make addon-hysteria2-server
Обновление
# Скачает последнюю версию и перезапустит сервис
make addon-hysteria2-server
Для фиксации версии:
hysteria2_server_version: "app/v2.5.1"