54 lines
1.5 KiB
YAML
54 lines
1.5 KiB
YAML
---
|
|
- 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"
|