Add auto-cleaning for caddy sites
This commit is contained in:
parent
7a1a8a348a
commit
aa9c76a622
7 changed files with 40 additions and 14 deletions
playbooks/tasks
23
playbooks/tasks/reload-caddy.yml
Normal file
23
playbooks/tasks/reload-caddy.yml
Normal file
|
@ -0,0 +1,23 @@
|
|||
- name: Find existing caddy site configs
|
||||
ansible.builtin.find:
|
||||
paths: "{{ caddy_config_path }}"
|
||||
recurse: no
|
||||
register: find_result
|
||||
- name: Map exisiting/wanted caddy site configs
|
||||
ansible.builtin.set_fact:
|
||||
caddy_site_configs_have: "{{ find_result.files | map(attribute='path') }}"
|
||||
caddy_site_configs_want: "{{ all_services | my_service_attributes(inventory_hostname) | list_prefix_path_suffix(caddy_config_path, '.conf') }}"
|
||||
|
||||
- name: Remove unwanted caddy site configs
|
||||
ansible.builtin.file:
|
||||
path: "{{ item }}"
|
||||
state: absent
|
||||
loop: "{{ caddy_site_configs_have | difference(caddy_site_configs_want) }}"
|
||||
become: true
|
||||
|
||||
- name: Reload caddy container
|
||||
ansible.builtin.command:
|
||||
cmd: docker compose exec app sh -c "caddy validate --config /etc/caddy/Caddyfile && caddy reload --config /etc/caddy/Caddyfile"
|
||||
chdir: "{{ caddy_path }}"
|
||||
when: "'local-dev' != inventory_hostname"
|
||||
changed_when: true
|
|
@ -2,11 +2,7 @@
|
|||
- name: Template caddy site
|
||||
ansible.builtin.template:
|
||||
src: caddy_site.conf.j2
|
||||
dest: "{{ (caddy_config_path, svc.domain + '.conf') | path_join }}"
|
||||
dest: "{{ (caddy_config_path, role_name + '.conf') | path_join }}"
|
||||
mode: "0644"
|
||||
notify:
|
||||
- Reload caddy
|
||||
|
||||
- name: Register caddy site
|
||||
ansible.builtin.set_fact:
|
||||
managed_sites: "{{ managed_sites + [svc.domain + '.conf'] }}"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue