ansible/roles/restic-client/tasks/main.yml

76 lines
1.8 KiB
YAML

---
- name: Install restic
apt:
update_cache: true
name:
- restic
state: present
register: apt_result
retries: 3
until: apt_result is succeeded
- name: Ensures /etc/restic exists
file:
path: /etc/restic
state: directory
mode: 0700
owner: root
- name: Deploy restic config
template:
src: "restic/base{{ item.1 }}.j2"
dest: /etc/restic/{{ item.0 }}{{ item.1 }}
mode: 0600
owner: root
group: root
with_nested:
- "{{ restic.config }}"
- { .env, -excludes, -includes, -password, -repo }
notify:
- Restart timer
- systemctl daemon-reload
- name: Deploy restic systemd
template:
src: "systemd/system/restic-base{{ item.1 }}.j2"
dest: /etc/systemd/system/restic-{{ item.0 }}{{ item.1 }}
mode: 0600
owner: root
group: root
with_nested:
- "{{ restic.config }}"
- { .service, .timer }
notify:
- Restart timer
- systemctl daemon-reload
- name: Init restic repository (Debian >=12)
command:
cmd: "restic init --repository-file /etc/restic/{{ item }}-repo --password-file /etc/restic/base-password"
register: restic_init
ignore_errors: true
loop: "{{ restic.config.keys() }}"
when:
- ansible_facts['distribution_major_version'] >= "12"
- name: Init restic repository (Debian <12)
command:
cmd: "restic init --repo {{ restic.remote.0 + item }} --password-file /etc/restic/{{ item }}-password"
register: restic_init
ignore_errors: true
loop: "{{ restic.config.keys() }}"
when:
- ansible_facts['distribution_major_version'] < "12"
- name: Indicate role in motd
template:
src: update-motd.d/04-service.j2
dest: /etc/update-motd.d/04-restic
mode: 0755
- name: Enable timer
service:
name: restic-{{ item }}.timer
enabled: true
loop: "{{ restic.config.keys() }}"