diff --git a/README.md b/README.md index 6c70a6e..d042cc4 100644 --- a/README.md +++ b/README.md @@ -292,7 +292,8 @@ hysteria2_obfs_password: "{{ vault_hysteria2_obfs_passwords[inventory_hostname] На **control node**: - удаляется `output/<имя_сервера>/`; -- пересобирается общий `output/index.html`. +- пересобирается общий `output/index.html` (сервер убирается из списка; при `LIMIT=...` тоже); +- если серверов не осталось — `output/index.html` удаляется. --- diff --git a/playbook-uninstall.yml b/playbook-uninstall.yml index 5a30083..8531a94 100644 --- a/playbook-uninstall.yml +++ b/playbook-uninstall.yml @@ -10,14 +10,19 @@ tasks_from: uninstall.yml - name: Rebuild global output index after uninstall - hosts: localhost - connection: local - gather_facts: true - become: false + hosts: hysteria2_servers + gather_facts: false tags: [uninstall] tasks: - - name: Regenerate output/index.html from remaining servers - ansible.builtin.include_role: - name: hysteria2 - tasks_from: export_global.yml + - name: Regenerate output/index.html without removed server + block: + - name: Run global export tasks + ansible.builtin.include_role: + name: hysteria2 + tasks_from: export_global.yml + vars: + hysteria2_open_browser: false + run_once: true + delegate_to: localhost + become: false when: hysteria2_uninstall_rebuild_global_index | default(true) | bool diff --git a/roles/hysteria2/tasks/export_global.yml b/roles/hysteria2/tasks/export_global.yml index 302fe03..af0bbd8 100644 --- a/roles/hysteria2/tasks/export_global.yml +++ b/roles/hysteria2/tasks/export_global.yml @@ -56,6 +56,13 @@ when: hysteria2_global_servers | default([]) | length > 0 become: false +- name: Remove global HTML index when no servers remain + ansible.builtin.file: + path: "{{ hysteria2_output_dir }}/index.html" + state: absent + when: hysteria2_global_servers | default([]) | length == 0 + become: false + - name: Open global index in default browser (macOS) ansible.builtin.command: cmd: open "{{ hysteria2_output_dir }}/index.html" @@ -87,6 +94,6 @@ - name: Skip global index when no servers exported ansible.builtin.debug: - msg: "Глобальный index.html не создан — нет server-info.yml в {{ hysteria2_output_dir }}/" + msg: "Глобальный {{ hysteria2_output_dir }}/index.html удалён — нет server-info.yml в output/" when: hysteria2_global_servers | default([]) | length == 0 become: false diff --git a/roles/hysteria2/tasks/uninstall.yml b/roles/hysteria2/tasks/uninstall.yml index d36850f..f1f7cbb 100644 --- a/roles/hysteria2/tasks/uninstall.yml +++ b/roles/hysteria2/tasks/uninstall.yml @@ -127,5 +127,5 @@ Hysteria2 (Salamander) полностью удалён с {{ inventory_hostname }}. Локальная папка {{ hysteria2_output_dir }}/{{ hysteria2_output_name }}/ удалена. {% if hysteria2_uninstall_rebuild_global_index | default(true) | bool %} - Глобальный {{ hysteria2_output_dir }}/index.html будет пересобран. + {{ hysteria2_output_dir }}/index.html будет пересобран без этого сервера. {% endif %}