--- # ============================================================================ # Semaphore container (Quadlet) # ============================================================================ - name: Deploy Semaphore Quadlet ansible.builtin.template: src: semaphore.container.j2 dest: "{{ semaphore_quadlet_dir }}/{{ semaphore_container_name }}.container" owner: root group: root mode: "0644" register: semaphore_quadlet - name: Reload systemd to pick up Quadlet changes ansible.builtin.systemd: daemon_reload: true when: semaphore_quadlet.changed - name: Ensure Semaphore container is started and enabled ansible.builtin.systemd: name: "{{ semaphore_container_name }}.service" state: started enabled: true # Quadlet does NOT auto-restart a running container when its .container # file changes — the systemd unit is regenerated, but the container # process keeps its original env. Force a restart when the Quadlet # template was modified so env-var changes actually take effect. - name: Restart Semaphore on Quadlet change ansible.builtin.systemd: name: "{{ semaphore_container_name }}.service" state: restarted when: semaphore_quadlet.changed