1
0
Fork 0
ansible-collection-caddy/roles/static/tasks/deploy_static_site.yml
Nis Wechselberg 96a91b2ecb
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Roles for caddy as well as isso
Signed-off-by: Nis Wechselberg <enbewe@enbewe.de>
2025-05-07 21:37:12 +02:00

93 lines
2.4 KiB
YAML

---
- name: 'Create site network'
become: true
containers.podman.podman_network:
name: '{{ item.network }}'
ipv6: true
state: 'quadlet'
- name: 'Define caddy image'
become: true
containers.podman.podman_image:
name: '{{ static_caddy_image_name }}:{{ static_caddy_image_tag }}'
state: 'quadlet'
notify:
- 'Reload caddy services'
- 'Restart caddy image'
- name: 'Define site data volume'
become: true
containers.podman.podman_volume:
name: '{{ item.volume }}'
state: 'quadlet'
notify:
- 'Reload caddy services'
register: 'static_caddy_volume_changed'
- name: 'Clean the handlers'
ansible.builtin.meta: 'flush_handlers'
- name: 'Restart caddy static volume'
become: true
when: 'static_caddy_volume_changed.changed' # noqa: no-handler
ansible.builtin.service:
name: '{{ item.volume }}-volume.service'
state: 'restarted'
- name: 'Create target directory for site data'
become: true
ansible.builtin.file:
name: '/srv/www/{{ item.name }}'
state: 'directory'
owner: 'root'
group: 'root'
mode: 'u=rwx,g=rx,o=rx'
- name: 'Download site data archive from url'
become: true
when: 'not ansible_check_mode'
ansible.builtin.get_url:
dest: '{{ item.tempfile }}'
url: '{{ item.archive_url }}'
url_username: '{{ item.archive_username }}'
url_password: '{{ item.archive_password }}'
force_basic_auth: true
owner: 'root'
group: 'root'
mode: 'u=rw,g=,o='
register: 'static_caddy_download_data'
- name: 'Unarchive site data'
when: 'static_caddy_download_data.changed' # noqa: no-handler
become: true
ansible.builtin.unarchive:
src: '{{ item.tempfile }}'
dest: '/srv/www/{{ item.name }}'
remote_src: true
- name: 'Create site container'
become: true
containers.podman.podman_container:
name: 'caddy-static-{{ item.name }}'
image: 'caddy.image'
network: '{{ item.network }}.network'
state: 'quadlet'
volume:
- '/srv/www/{{ item.name }}/:/usr/share/caddy/'
- '{{ item.volume }}.volume:/data'
quadlet_options: |
[Install]
WantedBy=default.target
notify:
- 'Reload caddy services'
register: 'static_caddy_container_create'
- name: 'Clean the handlers'
ansible.builtin.meta: 'flush_handlers'
- name: 'Restart caddy container'
when: 'static_caddy_container_create.changed' # noqa: no-handler
become: true
ansible.builtin.service:
name: 'caddy-static-{{ item.name }}.service'
state: 'restarted'