--- - name: "Configure restic and backup schedule" hosts: all vars_files: - vars/vars.yml - vars/secrets.yml vars: restic_shell_script: "{{ (bin_prefix, 'restic-shell.sh') | path_join }}" backup_all_script: "{{ (bin_prefix, 'backup-all.sh') | path_join }}" tasks: - name: "Copy restic shell script" ansible.builtin.template: src: "files/backups/restic-shell.sh.j2" dest: "{{ restic_shell_script }}" owner: root group: root mode: "0700" - name: "Copy backup all script" ansible.builtin.template: src: "files/backups/backup-all.sh.j2" dest: "{{ backup_all_script }}" 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: "{{ backup_all_script }} 2>&1 | logger -t backup" cron_file: "ansible_restic_backup" user: "root"