Добавить make index: пересборка output/index.html из локальных экспортов
Отдельный playbook на localhost читает server-info.yml, обновляет общий каталог и открывает его в браузере без обращения к VPS.
This commit is contained in:
@@ -32,7 +32,7 @@ BOLD := \033[1m
|
|||||||
NC := \033[0m
|
NC := \033[0m
|
||||||
|
|
||||||
.PHONY: help init check ping status \
|
.PHONY: help init check ping status \
|
||||||
install update export uninstall \
|
install update export index uninstall \
|
||||||
vault-init vault-encrypt vault-edit vault-view
|
vault-init vault-encrypt vault-edit vault-view
|
||||||
|
|
||||||
help: ## Показать справку
|
help: ## Показать справку
|
||||||
@@ -48,6 +48,7 @@ help: ## Показать справку
|
|||||||
@echo " make install"
|
@echo " make install"
|
||||||
@echo " make install LIMIT=vps-de"
|
@echo " make install LIMIT=vps-de"
|
||||||
@echo " make update LIMIT=vps-nl"
|
@echo " make update LIMIT=vps-nl"
|
||||||
|
@echo " make index"
|
||||||
@echo " make uninstall LIMIT=vps-de"
|
@echo " make uninstall LIMIT=vps-de"
|
||||||
@echo ""
|
@echo ""
|
||||||
|
|
||||||
@@ -67,6 +68,7 @@ init: ## Создать inventory, group_vars и .vault_pass из примеро
|
|||||||
check: ## Проверить синтаксис playbook
|
check: ## Проверить синтаксис playbook
|
||||||
$(ANSIBLE) playbook.yml --syntax-check $(VAULT_ARGS)
|
$(ANSIBLE) playbook.yml --syntax-check $(VAULT_ARGS)
|
||||||
$(ANSIBLE) playbook-uninstall.yml --syntax-check $(VAULT_ARGS)
|
$(ANSIBLE) playbook-uninstall.yml --syntax-check $(VAULT_ARGS)
|
||||||
|
$(ANSIBLE) playbook-index.yml --syntax-check $(VAULT_ARGS)
|
||||||
|
|
||||||
ping: ## Проверить SSH-доступ ко всем VPS
|
ping: ## Проверить SSH-доступ ко всем VPS
|
||||||
$(ANSIBLE_ADHOC) hysteria2_servers -m ping $(ANSIBLE_OPTS)
|
$(ANSIBLE_ADHOC) hysteria2_servers -m ping $(ANSIBLE_OPTS)
|
||||||
@@ -97,6 +99,10 @@ update: check ## Обновить бинарник, перекатить кон
|
|||||||
export: check ## Только перевыпустить URL и QR (без изменений на сервере)
|
export: check ## Только перевыпустить URL и QR (без изменений на сервере)
|
||||||
$(ANSIBLE) playbook.yml --tags export $(ANSIBLE_OPTS)
|
$(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)
|
uninstall: ## Полностью удалить Hysteria2 с VPS (только uninstall, без install/update)
|
||||||
@echo "$(YELLOW)Будет выполнено удаление Hysteria2$(NC) $(if $(LIMIT),на $(LIMIT),на всех серверах)"
|
@echo "$(YELLOW)Будет выполнено удаление Hysteria2$(NC) $(if $(LIMIT),на $(LIMIT),на всех серверах)"
|
||||||
@read -p "Продолжить? [y/N] " c; [[ "$$c" =~ ^[Yy]$$ ]] || exit 1
|
@read -p "Продолжить? [y/N] " c; [[ "$$c" =~ ^[Yy]$$ ]] || exit 1
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ make install # → output/index.html откроется в браузере
|
|||||||
| `make install` | Установка masquerade + экспорт URL/QR/HTML |
|
| `make install` | Установка masquerade + экспорт URL/QR/HTML |
|
||||||
| `make update` | Обновить бинарник и конфиг; экспорт только для новых/изменённых пользователей |
|
| `make update` | Обновить бинарник и конфиг; экспорт только для новых/изменённых пользователей |
|
||||||
| `make export` | Только экспорт (URL, QR, HTML) без изменений на сервере |
|
| `make export` | Только экспорт (URL, QR, HTML) без изменений на сервере |
|
||||||
|
| `make index` | Пересобрать `output/index.html` из локальных `server-info.yml` и открыть в браузере |
|
||||||
| `make uninstall` | Полное удаление с VPS + `output/<server>/` + пересборка `output/index.html` |
|
| `make uninstall` | Полное удаление с VPS + `output/<server>/` + пересборка `output/index.html` |
|
||||||
| `make vault-init` | Создать `.vault_pass`, включить `vault_password_file` в `ansible.cfg` |
|
| `make vault-init` | Создать `.vault_pass`, включить `vault_password_file` в `ansible.cfg` |
|
||||||
| `make vault-encrypt` | Зашифровать `vault.yml` |
|
| `make vault-encrypt` | Зашифровать `vault.yml` |
|
||||||
@@ -84,6 +85,7 @@ make install LIMIT=vps-de
|
|||||||
make install LIMIT=vps-nl # только новый сервер — старые не трогаются
|
make install LIMIT=vps-nl # только новый сервер — старые не трогаются
|
||||||
make update LIMIT=vps-nl
|
make update LIMIT=vps-nl
|
||||||
make export
|
make export
|
||||||
|
make index # только пересобрать общий каталог из output/
|
||||||
make uninstall LIMIT=vps-de
|
make uninstall LIMIT=vps-de
|
||||||
make update EXTRA_VARS='hysteria2_force_export=true' # перевыпустить URL/QR для всех
|
make update EXTRA_VARS='hysteria2_force_export=true' # перевыпустить URL/QR для всех
|
||||||
make install EXTRA_VARS='hysteria2_force_export=true' # то же при install
|
make install EXTRA_VARS='hysteria2_force_export=true' # то же при install
|
||||||
@@ -351,7 +353,9 @@ HTML-страницы показывают:
|
|||||||
- QR-коды;
|
- 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`.
|
Отключить: `hysteria2_open_browser: false` в `group_vars/all.yml` или `EXTRA_VARS`.
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
Reference in New Issue
Block a user