feat: incremental user passwords and export on update
Preserve passwords from server-info.yml and vault; generate only for new users; remove deleted users from output; re-export URL/QR only when password, domain, port, obfs or files changed.
This commit is contained in:
@@ -196,9 +196,12 @@ hysteria2_user_passwords:
|
||||
friend: "custom-password"
|
||||
```
|
||||
|
||||
3. **Автогенерация** — Ansible `password` lookup (длина `hysteria2_password_length`), если пароль не задан.
|
||||
3. **Автогенерация** — Ansible `password` lookup, если пароль не задан ни в inventory/vault, ни в `output/<server>/server-info.yml`.
|
||||
|
||||
При `make update` пароли подтягиваются из `output/<server>/server-info.yml`, если не указаны в vault/inventory.
|
||||
При `make update` / `make export`:
|
||||
- **существующие** пользователи сохраняют пароли из `server-info.yml` (и URL/QR, если домен/порт/obfs не менялись);
|
||||
- **новые** получают автогенерацию и полный экспорт;
|
||||
- **удалённые** из inventory убираются из конфига Hysteria2 и из `output/<server>/`.
|
||||
|
||||
### Salamander obfs (один на сервер)
|
||||
|
||||
@@ -215,7 +218,7 @@ vault_hysteria2_obfs_passwords:
|
||||
```
|
||||
|
||||
2. **Авто:** Ansible `password` lookup (`hysteria2_obfs_password_length`) при первой установке
|
||||
3. **При update:** загружается из `output/<server>/server-info.yml`
|
||||
3. **При update/export:** загружается из `output/<server>/server-info.yml` (как VPN-пароли)
|
||||
|
||||
> **Важно:** obfs-пароль на сервере и клиенте должен **совпадать**. При `make update` без vault пароль сохраняется из предыдущего экспорта.
|
||||
|
||||
@@ -299,6 +302,7 @@ ASCII QR — `hysteria share --qr` → `user.qr.txt`.
|
||||
| `hysteria2_users` | host | VPN-пользователи |
|
||||
| `hysteria2_acme_email` | group | Email Let's Encrypt |
|
||||
| `hysteria2_user_passwords` | host/vault | Свои пароли VPN |
|
||||
| `hysteria2_force_export` | group | Перегенерировать URL/QR для всех пользователей (`false` — только новые/изменённые) |
|
||||
| `hysteria2_obfs_password` | host/vault | Пароль Salamander (или авто) |
|
||||
| `hysteria2_obfs_password_length` | group | Длина автопароля obfs (32) |
|
||||
| `hysteria2_output_dir` | group | Папка экспорта (по умолчанию `./output`) |
|
||||
|
||||
Reference in New Issue
Block a user