caddyproxy: Caddyfile применяется через caddy reload
- вместо рестарта всего прокси, через который идёт весь трафик; конфиг указан явно через --config, иначе caddy молча перезагружает не тот файл - задача handlers-remaining-apps удалена из беклога
This commit is contained in:
@@ -31,7 +31,6 @@ _(sec-ревью)_ — три независимых security-ревью на м
|
||||
- [Gitea runner on-demand в Yandex Cloud](gitea-runner-on-demand.md) — раннер активен только во время сборки; webhook→Cloud Function стартует ВМ, probe/decide гасят по idle; экономия ~95%
|
||||
- [Синхронизация общих Ansible-ролей между репозиториями](shared-roles-sync.md) — `owner`/`eget`/`secrets` дублируются между репозиториями и дрейфуют; канон в ansible-shared + rsync-таски invoke
|
||||
- [Уведомления о размере приложений и заполнении диска](disk-usage-alerts.md) — алерты на заполнение диска и аномальный рост data-томов; сервер ресурсно ограничен _(tududi)_
|
||||
- [Handlers рестарта для оставшихся приложений](handlers-remaining-apps.md) — apprise/dashboard/transcriber/miniflux монтируют конфиг в контейнер, но рестарта нет вовсе; правка конфига не подхватывается
|
||||
- [Composable-роль `backup`](ansible-backup-role.md) — бэкап — самый чистый шов для extraction (одинаков у всех, различается только список targets) _(ансибл-ревью)_
|
||||
- [Вывести из оборота секреты с широкими правами](narrow-secret-scopes.md) — `yc_oauth_token` (весь аккаунт Yandex Cloud) уже выведен; осталось проставить радиус остальным переменным vault и сузить широкие
|
||||
- [outline: секреты из файлов](secrets-file-outline.md) — умеет generic `<NAME>_FILE` для всех пяти секретов; единственное приложение, где выносится вообще всё, включая пароль БД
|
||||
|
||||
+10
-15
@@ -74,7 +74,7 @@
|
||||
owner: "{{ app_user }}"
|
||||
group: "{{ app_user }}"
|
||||
mode: "0640"
|
||||
notify: "Restart application"
|
||||
notify: "Reload caddy configuration"
|
||||
|
||||
- name: "Copy docker compose file"
|
||||
ansible.builtin.template:
|
||||
@@ -92,21 +92,16 @@
|
||||
tags:
|
||||
- run-app
|
||||
|
||||
# - name: "Reload caddy"
|
||||
# community.docker.docker_compose_v2_exec:
|
||||
# project_src: '{{ base_dir }}'
|
||||
# service: "{{ service_name }}"
|
||||
# command: caddy reload --config /etc/caddy/Caddyfile
|
||||
# tags:
|
||||
# - run-app
|
||||
|
||||
handlers:
|
||||
# Приложение читает конфиги только при старте, а `state: present` не
|
||||
# пересоздаёт контейнер, если docker-compose.yml не изменился, — поэтому
|
||||
# правку конфига применяет только явный рестарт.
|
||||
- name: "Restart application"
|
||||
community.docker.docker_compose_v2:
|
||||
# `state: present` не пересоздаёт контейнер, если docker-compose.yml не
|
||||
# изменился, — правку Caddyfile надо применять отдельно. Через прокси идёт
|
||||
# весь трафик, поэтому не рестарт, а `caddy reload`: конфиг применяется без
|
||||
# разрыва соединений. Конфиг указываем явно — без --config caddy берёт файл
|
||||
# из своего рабочего каталога и молча перезагружает не то.
|
||||
- name: "Reload caddy configuration"
|
||||
community.docker.docker_compose_v2_exec:
|
||||
project_src: "{{ base_dir }}"
|
||||
state: "restarted"
|
||||
service: "{{ service_name }}"
|
||||
command: "caddy reload --config /etc/caddy/Caddyfile"
|
||||
tags:
|
||||
- run-app
|
||||
|
||||
Reference in New Issue
Block a user