diff --git a/ansible/roles/restic/defaults/main.yml b/ansible/roles/restic/defaults/main.yml index 1f526dc..619e1ee 100644 --- a/ansible/roles/restic/defaults/main.yml +++ b/ansible/roles/restic/defaults/main.yml @@ -1,2 +1,3 @@ restic_backup_locations: [] +restic_backup_excludes: [] restic_forget: false diff --git a/ansible/roles/restic/files/backrest.sh b/ansible/roles/restic/files/backrest.sh index 946434d..a762863 100644 --- a/ansible/roles/restic/files/backrest.sh +++ b/ansible/roles/restic/files/backrest.sh @@ -17,7 +17,7 @@ mkdir -p "$RESTIC_LOG_DIR" # Run backup, and capture logs to file cron_backup() { curl -fsS -m 10 --retry 5 -o /dev/null {{ healthchecks_host }}/{{ restic_healthchecks_id }}/start - restic --verbose backup {{ restic_backup_locations|join(' ') }} | tee -a $RESTIC_LOG_FILE + restic --verbose backup --files-from=$HOME/restic-include.txt --exclude-file=$HOME/restic-excludes.txt | tee -a $RESTIC_LOG_FILE exit_code=${PIPESTATUS[0]} curl -fsS -m 10 --retry 5 -o /dev/null {{ healthchecks_host }}/{{ restic_healthchecks_id }}/$exit_code --data-binary "@$RESTIC_LOG_FILE" echo "Exit code: $exit_code" @@ -25,7 +25,7 @@ cron_backup() { # Run backup, but show all the progress backup() { - restic --verbose backup {{ restic_backup_locations|join(' ') }} + restic --verbose backup --files-from=$HOME/restic-include.txt --exclude-file=$HOME/restic-excludes.txt } {% if restic_forget %} diff --git a/ansible/roles/restic/tasks/main.yml b/ansible/roles/restic/tasks/main.yml index f251a57..f2df011 100644 --- a/ansible/roles/restic/tasks/main.yml +++ b/ansible/roles/restic/tasks/main.yml @@ -10,7 +10,7 @@ system: false become: true -- name: backrest +- name: Install backrest template: src: files/backrest.sh dest: /home/restic/backrest.sh @@ -18,6 +18,22 @@ owner: restic become: true +- name: Install includes files + copy: + content: "{{ restic_backup_locations | join('\n') }}" + dest: /home/restic/restic-include.txt + mode: "0644" + owner: restic + become: true + +- name: Install excludes files + copy: + content: "{{ restic_backup_excludes | join('\n') }}" + dest: /home/restic/restic-excludes.txt + mode: "0644" + owner: restic + become: true + - name: Set restic binary permissions file: path: /usr/bin/restic