--- - 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 - 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"