From f5f2384252e43d5ba59e0ac7627bea824b0536ec Mon Sep 17 00:00:00 2001 From: Sergey Antropoff Date: Thu, 23 Jul 2026 08:56:04 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20make=20index:=20=D0=BF=D0=B5=D1=80=D0=B5=D1=81=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=D0=BA=D0=B0=20output/index.html=20=D0=B8=D0=B7=20?= =?UTF-8?q?=D0=BB=D0=BE=D0=BA=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D1=85=20=D1=8D?= =?UTF-8?q?=D0=BA=D1=81=D0=BF=D0=BE=D1=80=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Отдельный playbook на localhost читает server-info.yml, обновляет общий каталог и открывает его в браузере без обращения к VPS. --- Makefile | 8 +++++++- README.md | 6 +++++- playbook-index.yml | 11 +++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 playbook-index.yml diff --git a/Makefile b/Makefile index 128e59e..6918796 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/README.md b/README.md index f345726..136c6af 100644 --- a/README.md +++ b/README.md @@ -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//` + пересборка `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`. diff --git a/playbook-index.yml b/playbook-index.yml new file mode 100644 index 0000000..351966a --- /dev/null +++ b/playbook-index.yml @@ -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