--- # worker-crons — deploy systemd .service + .timer pairs for every # scheduled worker job. Each entry in `worker_crons` (defaults/main.yml) # expands into /etc/systemd/system/{name}.{service,timer}. - name: Deploy worker cron .service units ansible.builtin.template: src: cron.service.j2 dest: "/etc/systemd/system/{{ cron.name }}.service" owner: root group: root mode: "0644" loop: "{{ worker_crons }}" loop_control: loop_var: cron notify: reload systemd - name: Deploy worker cron .timer units ansible.builtin.template: src: cron.timer.j2 dest: "/etc/systemd/system/{{ cron.name }}.timer" owner: root group: root mode: "0644" loop: "{{ worker_crons }}" loop_control: loop_var: cron notify: reload systemd # Force the daemon-reload BEFORE enabling, or `systemctl enable` won't # see the new .timer units. - name: Reload systemd now (so enables below see new units) ansible.builtin.systemd: daemon_reload: true - name: Enable + start worker cron timers ansible.builtin.systemd: name: "{{ cron.name }}.timer" enabled: true state: started loop: "{{ worker_crons }}" loop_control: loop_var: cron