92 lines
1.9 KiB
YAML
92 lines
1.9 KiB
YAML
- name: Install restic
|
|
package:
|
|
name: restic
|
|
become: true
|
|
|
|
- name: Make user
|
|
user:
|
|
name: restic
|
|
shell: /bin/nologin
|
|
system: false
|
|
become: true
|
|
|
|
- name: Install backrest
|
|
template:
|
|
src: files/backrest.sh
|
|
dest: /home/restic/backrest.sh
|
|
mode: "0700"
|
|
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
|
|
mode: "0750"
|
|
owner: root
|
|
group: restic
|
|
become: true
|
|
|
|
- name: Set cap_sys_chroot=+ep on restic
|
|
community.general.capabilities:
|
|
path: /usr/bin/restic
|
|
capability: cap_dac_read_search=+ep
|
|
become: true
|
|
|
|
- name: Schedule backup
|
|
cron:
|
|
name: restic backup
|
|
hour: 2
|
|
minute: 0
|
|
job: /home/restic/backrest.sh cron_backup
|
|
user: restic
|
|
become: true
|
|
|
|
- name: Schedule forget
|
|
cron:
|
|
name: restic forget
|
|
hour: 5
|
|
minute: 0
|
|
weekday: 0
|
|
job: /home/restic/backrest.sh cron_forget
|
|
user: restic
|
|
become: true
|
|
when: restic_forget
|
|
|
|
- name: backrest fail2ban config
|
|
template:
|
|
src: files/backrest-logrotate
|
|
dest: /etc/logrotate.d/backrest
|
|
mode: "0600"
|
|
become: true
|
|
|
|
- name: Install pacman post script
|
|
template:
|
|
src: files/restic-post.sh
|
|
dest: /usr/share/libalpm/scripts/restic-post.sh
|
|
mode: "0700"
|
|
become: true
|
|
when: ansible_os_family == 'Archlinux'
|
|
|
|
- name: Install pacman post hook
|
|
template:
|
|
src: files/restic-post.hook
|
|
dest: /usr/share/libalpm/hooks/restic-post.hook
|
|
mode: "0600"
|
|
become: true
|
|
when: ansible_os_family == 'Archlinux'
|