--- - 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'