66 lines
1.7 KiB
YAML
66 lines
1.7 KiB
YAML
---
|
|
- name: get repo status
|
|
shell:
|
|
cmd: restic -q -r {{ item.repo }} --no-lock snapshots 2> /dev/null
|
|
ignore_errors: yes
|
|
environment: "{{ item.environment | default({}) }}"
|
|
register: restic_init
|
|
changed_when: false
|
|
|
|
- name: init repos
|
|
shell:
|
|
cmd: restic -q -r {{ item.repo }} init
|
|
environment: "{{ item.environment | default({}) }}"
|
|
when: restic_init.rc != 0
|
|
|
|
- name: create repo config directory
|
|
file:
|
|
path: "{{ restic_etc_path }}/repos/{{ item.name }}"
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
state: directory
|
|
|
|
- name: create repo env directory
|
|
file:
|
|
path: "{{ restic_etc_path }}/repos/{{ item.name }}"
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
state: directory
|
|
|
|
- name: create repo environment helper
|
|
template:
|
|
src: repo-env.sh.j2
|
|
dest: "{{ restic_etc_path }}/repos/{{ item.name }}/env.sh"
|
|
owner: root
|
|
group: root
|
|
mode: 0400
|
|
|
|
- name: symlink default repo
|
|
block:
|
|
- name: explicit default
|
|
file:
|
|
src: "{{ restic_etc_path }}/repos/{{ item.name }}"
|
|
dest: "{{ restic_etc_path }}/repos/default"
|
|
state: link
|
|
force: yes
|
|
when: item.default is defined and item.default == True
|
|
- name: implicit default
|
|
file:
|
|
src: "{{ restic_etc_path }}/repos/{{ item.name }}"
|
|
dest: "{{ restic_etc_path }}/repos/default"
|
|
state: link
|
|
force: yes
|
|
when: restic_repos | count == 1
|
|
|
|
- name: create cron
|
|
cron:
|
|
name: "restic {{ item.name }} tidy"
|
|
hour: "0"
|
|
minute: "{{ 60 | random(seed=inventory_hostname) }}"
|
|
user: root
|
|
state: present
|
|
job: "( {{ restic_bin_path }}/restic-tidy {{ item.name }} | logger --id=$$ -t restic-tidy -p user.info ) 2>&1 | logger --id=$$ -t restic-tidy -p user.err"
|
|
when: restic_tidy_enabled
|