All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Signed-off-by: Nis Wechselberg <enbewe@enbewe.de>
93 lines
2.4 KiB
YAML
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'
|