Добавить make index: пересборка output/index.html из локальных экспортов

Отдельный playbook на localhost читает server-info.yml, обновляет
общий каталог и открывает его в браузере без обращения к VPS.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Sergey Antropoff
2026-07-23 08:56:04 +03:00
parent 36d7016b74
commit b43d8f7dcb
3 changed files with 23 additions and 2 deletions
+7 -1
View File
@@ -32,7 +32,7 @@ BOLD := \033[1m
NC := \033[0m
.PHONY: help init check ping status \
install update export uninstall \
install update export index uninstall \
vault-init vault-encrypt vault-edit vault-view
help: ## Показать справку
@@ -48,6 +48,7 @@ help: ## Показать справку
@echo " make install"
@echo " make install LIMIT=vps-de"
@echo " make update LIMIT=vps-nl"
@echo " make index"
@echo " make uninstall LIMIT=vps-de"
@echo ""
@@ -67,6 +68,7 @@ init: ## Создать inventory, group_vars и .vault_pass из примеро
check: ## Проверить синтаксис playbook
$(ANSIBLE) playbook.yml --syntax-check $(VAULT_ARGS)
$(ANSIBLE) playbook-uninstall.yml --syntax-check $(VAULT_ARGS)
$(ANSIBLE) playbook-index.yml --syntax-check $(VAULT_ARGS)
ping: ## Проверить SSH-доступ ко всем VPS
$(ANSIBLE_ADHOC) hysteria2_servers -m ping $(ANSIBLE_OPTS)
@@ -97,6 +99,10 @@ update: check ## Обновить бинарник, перекатить кон
export: check ## Только перевыпустить URL и QR (без изменений на сервере)
$(ANSIBLE) playbook.yml --tags export $(ANSIBLE_OPTS)
index: check ## Пересобрать output/index.html из локальных server-info.yml и открыть в браузере
$(ANSIBLE) playbook-index.yml $(VAULT_ARGS) \
$(if $(EXTRA_VARS),--extra-vars "$(EXTRA_VARS)",)
uninstall: ## Полностью удалить Hysteria2 с VPS (только uninstall, без install/update)
@echo "$(YELLOW)Будет выполнено удаление Hysteria2$(NC) $(if $(LIMIT),на $(LIMIT),на всех серверах)"
@read -p "Продолжить? [y/N] " c; [[ "$$c" =~ ^[Yy]$$ ]] || exit 1
+5 -1
View File
@@ -72,6 +72,7 @@ make install # → output/index.html откроется в браузере
| `make install` | Установка Salamander + экспорт URL/QR/HTML |
| `make update` | Обновить бинарник и конфиг; экспорт только для новых/изменённых пользователей |
| `make export` | Только экспорт (URL, QR, HTML) без изменений на сервере |
| `make index` | Пересобрать `output/index.html` из локальных `server-info.yml` и открыть в браузере |
| `make uninstall` | Полное удаление с VPS + `output/<server>/` + пересборка `output/index.html` |
| `make vault-init` | Создать `.vault_pass`, включить `vault_password_file` в `ansible.cfg` |
| `make vault-encrypt` | Зашифровать `vault.yml` |
@@ -83,6 +84,7 @@ make install LIMIT=vps-de
make install LIMIT=vps-nl # только новый сервер — старые не трогаются
make update LIMIT=vps-nl
make export
make index # только пересобрать общий каталог из output/
make uninstall LIMIT=vps-de
make update EXTRA_VARS='hysteria2_force_export=true' # перевыпустить URL/QR для всех
make install EXTRA_VARS='hysteria2_force_export=true' # то же при install
@@ -369,7 +371,9 @@ HTML-страницы показывают:
- QR-коды;
- ссылки на файлы и страницы серверов.
После `make install`, `make update` и `make export` **`output/index.html` автоматически открывается в браузере** (macOS: `open`, Linux: `xdg-open`).
После `make install`, `make update`, `make export` и `make index` **`output/index.html` автоматически открывается в браузере** (macOS: `open`, Linux: `xdg-open`).
`make index` не ходит на VPS: только читает `output/*/server-info.yml` и пересобирает общий каталог.
Отключить: `hysteria2_open_browser: false` в `group_vars/all.yml` или `EXTRA_VARS`.
+11
View File
@@ -0,0 +1,11 @@
---
- name: Rebuild global output index from local exports
hosts: localhost
connection: local
gather_facts: true
become: false
tasks:
- name: Generate output/index.html and open in browser
ansible.builtin.include_role:
name: hysteria2
tasks_from: export_global.yml