--- - name: 'Configure restic and backup schedule' hosts: all vars_files: - vars/vars.yml - vars/secrets.yml tasks: - name: 'Copy restic shell script' ansible.builtin.template: src: "files/backups/restic-shell.sh.j2" dest: "{{ bin_prefix }}/restic-shell.sh" owner: root group: root mode: "0700" - name: 'Copy restic backup script' ansible.builtin.template: src: "files/backups/restic-backup.sh.j2" dest: "{{ bin_prefix }}/restic-backup.sh" owner: root group: root mode: '0700' - name: 'Create gobackup config directory' ansible.builtin.file: path: "{{ backup_gobackup_config | dirname }}" state: directory mode: '0755' - name: 'Copy gobackup config files' ansible.builtin.template: src: "files/backups/gobackup.yml.j2" dest: "{{ backup_gobackup_config }}" owner: root group: root mode: '0700' - name: "Setup paths for backup cron file" ansible.builtin.cron: cron_file: 'ansible_restic_backup' user: 'root' env: true name: 'PATH' job: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin' - name: "Setup mail for backup cron file" ansible.builtin.cron: cron_file: 'ansible_restic_backup' user: 'root' env: true name: 'MAILTO' job: '' - name: "Creates a cron file for backups under /etc/cron.d" ansible.builtin.cron: name: 'restic backup' minute: '0' hour: '1' job: '/usr/local/bin/restic-backup.sh 2>&1 | logger -t backup' cron_file: 'ansible_restic_backup' user: 'root'