--- - name: Register existence of Borgmatic cron file. cron: name: "{{ borgmatic_timer_cron_name }}" cron_file: "{{ borgmatic_timer_cron_name }}" state: absent check_mode: true register: cron_file_exists ignore_errors: true - name: Ensure no Borgmatic Cron file exists. ansible.builtin.assert: that: - not cron_file_exists.changed - not cron_file_exists.failed or "Failed to find" in cron_file_exists.msg fail_msg: Found an existing Borgmatic Cron job. Please remove before using Systemd timer. - name: Create borgbackup timer block: - name: Copy systemd files ansible.builtin.template: src: "{{ item.src }}" dest: "{{ item.dest }}" owner: root group: root backup: true mode: "{{ item.mode }}" with_items: - { src: "borgmatic.timer.j2", dest: "/usr/lib/systemd/system/borgmatic.timer", mode: "0644" } - { src: "borgmatic.service.j2", dest: "/usr/lib/systemd/system/borgmatic.service", mode: "0644" } - name: Reload systemd daemon ansible.builtin.systemd: daemon_reload: true - name: Enable and start borgmatic timer when: borgmatic_timer_enabled | default(true) | bool ansible.builtin.systemd: name: borgmatic.timer state: started enabled: true - name: Disable borgmatic timer when: not (borgmatic_timer_enabled | default(true) | bool) block: - name: Stop and disable borgmatic.timer ansible.builtin.systemd: name: borgmatic.timer state: stopped enabled: false - name: Show hints ansible.builtin.debug: msg: >- Attention: borgmatic_timer_enabled is set to false. The systemd timer (borgmatic.timer) is not activated. Enable it manually with: systemctl enable --now borgmatic.timer ...