ansible-edda/playbooks/tasks/backups/01-restic-setup.yml

74 lines
2.0 KiB
YAML

- name: Check if restic is insalled
stat:
path: /usr/local/bin/restic
register: restic_path
- block:
- name: Download restic binary
get_url:
url: https://github.com/restic/restic/releases/download/v0.14.0/restic_0.14.0_linux_amd64.bz2
dest: /usr/local/bin/restic.bz2
mode: 0644
- name: Unpack restic binary
command: bunzip2 /usr/local/bin/restic.bz2
when:
not restic_path.stat.exists
- name: Ensure restic is executable
file:
path: /usr/local/bin/restic
mode: 0755
- name: Create scaleway key file
template:
src: ./filesystem/{{ ansible_hostname }}/etc/scaleway.keys.j2
dest: /etc/scaleway.keys
mode: 0600
- name: Create restic password file
template:
src: ./filesystem/{{ ansible_hostname }}/etc/restic.password.j2
dest: /etc/restic.password
mode: 0600
- name: Create a cache directory for restic
file:
path: /var/cache/restic
state: directory
mode: 0755
- name: Install the restic backup script
template:
src: ./filesystem/{{ ansible_hostname }}/usr/local/sbin/restic-service-data.j2
dest: /usr/local/sbin/restic-service-data
mode: 0755
- name: Install the restic backup service file
template:
src: ./filesystem/{{ ansible_hostname }}/etc/systemd/system/restic-service-data.service.j2
dest: /etc/systemd/system/restic-service-data.service
mode: 0644
register: systemd_restic_service_data_service_file
- name: Install the restic backup timer file
copy:
src: ./filesystem/{{ ansible_hostname }}/etc/systemd/system/restic-service-data.timer
dest: /etc/systemd/system/restic-service-data.timer
mode: 0644
register: systemd_restic_service_data_timer_file
- name: SystemD daemon reload
systemd:
daemon_reload: true
when:
systemd_restic_service_data_service_file is changed or
systemd_restic_service_data_timer_file is changed
- name: Enable restic backup
systemd:
name: restic-service-data.timer
enabled: yes
state: started