- name: upload restic binary become: true ansible.builtin.copy: src: restic-arm64 dest: /usr/local/bin/restic mode: '0755' owner: root group: root - name: upload restic.sh script become: true ansible.builtin.template: src: restic.j2 dest: /root/restic.sh owner: root group: root mode: '0700' - name: initialize restic repository become: true ansible.builtin.shell: /root/restic.sh init # Handle if restic has already been initialized register: result failed_when: - result.rc == 1 - '"config file already exists" not in result.stderr' changed_when: '"config file already exists" not in result.stderr' - name: upload backup script become: true ansible.builtin.template: src: backup.j2 dest: /root/backup.sh mode: '0700' owner: root group: root - name: upload system-email notification script become: true ansible.builtin.template: src: system-email.sh.j2 dest: /usr/local/bin/system-email mode: '0755' owner: root group: root - name: setup status-email.service become: true ansible.builtin.template: src: status-email.service.j2 dest: /etc/systemd/system/status-email@.service - name: upload systemd unit files become: true copy: src: "{{ item }}" dest: "/etc/systemd/system/{{ item }}" with_items: - backup.service - backup.timer - name: Enable backup.timer become: true ansible.builtin.systemd: name: backup.timer state: started enabled: true