Compare commits
2 Commits
f6a81929b5
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 75f1885772 | |||
| 2deec1ab0b |
@@ -81,10 +81,12 @@ make install # → output/index.html откроется в браузере
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
make install LIMIT=vps-de
|
make install LIMIT=vps-de
|
||||||
|
make install LIMIT=vps-nl # только новый сервер — старые не трогаются
|
||||||
make update LIMIT=vps-nl
|
make update LIMIT=vps-nl
|
||||||
make export
|
make export
|
||||||
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_open_browser=false'
|
make install EXTRA_VARS='hysteria2_open_browser=false'
|
||||||
make update EXTRA_VARS='hysteria2_wait_for_acme=false'
|
make update EXTRA_VARS='hysteria2_wait_for_acme=false'
|
||||||
```
|
```
|
||||||
@@ -223,6 +225,25 @@ hysteria2_user_passwords:
|
|||||||
|
|
||||||
Принудительно перевыпустить URL/QR для всех: `hysteria2_force_export: true` (в `group_vars/all.yml` или `EXTRA_VARS`).
|
Принудительно перевыпустить URL/QR для всех: `hysteria2_force_export: true` (в `group_vars/all.yml` или `EXTRA_VARS`).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make install EXTRA_VARS='hysteria2_force_export=true'
|
||||||
|
make update LIMIT=vps-de EXTRA_VARS='hysteria2_force_export=true'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Добавить второй VPS
|
||||||
|
|
||||||
|
После `make install` на первом сервере можно добавить ещё один хост в `inventory/hosts.yml`.
|
||||||
|
|
||||||
|
**Без `LIMIT`** `make install` пройдёт по **всем** серверам из inventory. На уже установленном пароли и файлы URL/QR **не перегенерируются** (берутся из `output/<server>/server-info.yml`), если вы не меняли его `hysteria2_users`, домен или порт.
|
||||||
|
|
||||||
|
Чтобы **не трогать** уже работающий VPS и экспорт:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make install LIMIT=новый-сервер
|
||||||
|
```
|
||||||
|
|
||||||
|
`LIMIT` — имя нового хоста из inventory (например `vps-nl`).
|
||||||
|
|
||||||
### Добавить / удалить пользователя
|
### Добавить / удалить пользователя
|
||||||
|
|
||||||
1. Отредактируйте `hysteria2_users` в `inventory/hosts.yml` (добавьте имя или уберите).
|
1. Отредактируйте `hysteria2_users` в `inventory/hosts.yml` (добавьте имя или уберите).
|
||||||
|
|||||||
@@ -14,10 +14,19 @@
|
|||||||
dest: "{{ hysteria2_install_script_staging_dir }}/{{ hysteria2_install_script_name }}.remote"
|
dest: "{{ hysteria2_install_script_staging_dir }}/{{ hysteria2_install_script_name }}.remote"
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
force: true
|
force: true
|
||||||
|
timeout: 30
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
become: false
|
become: false
|
||||||
run_once: true
|
run_once: true
|
||||||
register: _hysteria2_remote_script
|
register: _hysteria2_remote_script
|
||||||
|
failed_when: false
|
||||||
|
|
||||||
|
- name: Record install script fetch result
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
_hysteria2_script_fetch_ok: "{{ not (_hysteria2_remote_script.failed | default(false)) }}"
|
||||||
|
delegate_to: localhost
|
||||||
|
become: false
|
||||||
|
run_once: true
|
||||||
|
|
||||||
- name: Stat local install script in role files
|
- name: Stat local install script in role files
|
||||||
ansible.builtin.stat:
|
ansible.builtin.stat:
|
||||||
@@ -36,6 +45,7 @@
|
|||||||
become: false
|
become: false
|
||||||
run_once: true
|
run_once: true
|
||||||
register: _hysteria2_remote_script_stat
|
register: _hysteria2_remote_script_stat
|
||||||
|
when: _hysteria2_script_fetch_ok | bool
|
||||||
|
|
||||||
- name: Update bundled install script when official version is newer
|
- name: Update bundled install script when official version is newer
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
@@ -45,20 +55,55 @@
|
|||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
become: false
|
become: false
|
||||||
run_once: true
|
run_once: true
|
||||||
when: >-
|
when:
|
||||||
|
- _hysteria2_script_fetch_ok | bool
|
||||||
|
- >-
|
||||||
not _hysteria2_local_script.stat.exists
|
not _hysteria2_local_script.stat.exists
|
||||||
or _hysteria2_local_script.stat.checksum
|
or _hysteria2_local_script.stat.checksum
|
||||||
!= _hysteria2_remote_script_stat.stat.checksum
|
!= _hysteria2_remote_script_stat.stat.checksum
|
||||||
register: _hysteria2_script_updated
|
register: _hysteria2_script_updated
|
||||||
|
|
||||||
- name: Report install script sync result
|
- name: Fail when bundled install script is missing and official fetch failed
|
||||||
ansible.builtin.debug:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
{{
|
Не удалось скачать {{ hysteria2_install_script_url }}
|
||||||
'Официальный install_server.sh обновлён в roles/hysteria2/files/'
|
({{ _hysteria2_remote_script.msg | default('сеть недоступна') }})
|
||||||
if (_hysteria2_script_updated.changed | default(false))
|
и локальный roles/hysteria2/files/{{ hysteria2_install_script_name }} отсутствует.
|
||||||
else 'Локальный install_server.sh актуален (совпадает с ' ~ hysteria2_install_script_url ~ ')'
|
|
||||||
}}
|
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
become: false
|
become: false
|
||||||
run_once: true
|
run_once: true
|
||||||
|
when:
|
||||||
|
- not _hysteria2_script_fetch_ok | bool
|
||||||
|
- not _hysteria2_local_script.stat.exists
|
||||||
|
|
||||||
|
- name: Report install script sync skipped due to network error
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: >-
|
||||||
|
Пропуск синхронизации с {{ hysteria2_install_script_url }}:
|
||||||
|
{{ _hysteria2_remote_script.msg | default('сеть недоступна') }}.
|
||||||
|
Используется локальный roles/hysteria2/files/{{ hysteria2_install_script_name }}.
|
||||||
|
delegate_to: localhost
|
||||||
|
become: false
|
||||||
|
run_once: true
|
||||||
|
when: not _hysteria2_script_fetch_ok | bool
|
||||||
|
|
||||||
|
- name: Report install script updated from official server
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: Официальный install_server.sh обновлён в roles/hysteria2/files/
|
||||||
|
delegate_to: localhost
|
||||||
|
become: false
|
||||||
|
run_once: true
|
||||||
|
when:
|
||||||
|
- _hysteria2_script_fetch_ok | bool
|
||||||
|
- _hysteria2_script_updated.changed | default(false)
|
||||||
|
|
||||||
|
- name: Report install script already up to date
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: >-
|
||||||
|
Локальный install_server.sh актуален (совпадает с {{ hysteria2_install_script_url }}).
|
||||||
|
delegate_to: localhost
|
||||||
|
become: false
|
||||||
|
run_once: true
|
||||||
|
when:
|
||||||
|
- _hysteria2_script_fetch_ok | bool
|
||||||
|
- not (_hysteria2_script_updated.changed | default(false))
|
||||||
|
|||||||
Reference in New Issue
Block a user