12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- - name: Ensure restic binary is in place
- copy:
- src: restic_linux_amd64
- dest: /usr/local/bin/restic
- mode: 0777
- - name: Ensure restic password file exists
- copy:
- dest: /root/.restic.password
- content: "{{ restic_repo_password }}"
- mode: 0600
- - name: Check repository
- register: restic_repo_check
- shell: /usr/local/bin/restic -p /root/.restic.password -r {{ restic_repo }} check
- environment: "{{ restic_repo_environment }}"
- ignore_errors: yes
- - name: Init restic repository
- when: restic_repo_check.rc != 0
- shell: /usr/local/bin/restic -p /root/.restic.password -r {{ restic_repo }} init
- environment: "{{ restic_repo_environment }}"
- - name: Ensure restic cron jobs exist
- cron:
- name: Restic backups for {{ item.dir }}
- job: /usr/local/bin/restic -p /root/.restic.password -r {{ restic_repo }} backup {{ item.dir }}
- hour: 2
- minute: 35
- cron_file: restic
- user: root
- with_items: "{{ restic_stateful_dirs }}"
- # TODO find a more elegant way to set environment variables here
- - name: Set restic environment variables
- cron:
- cron_file: restic
- name: "{{ item.name }}"
- value: "{{ item.value }}"
- env: yes
- user: root
- with_items:
- - name: "AWS_ACCESS_KEY_ID"
- value: "{{ restic_repo_environment.AWS_ACCESS_KEY_ID }}"
- - name: "AWS_SECRET_ACCESS_KEY"
- value: "{{ restic_repo_environment.AWS_SECRET_ACCESS_KEY }}"
- - name: Create initial backup of statefule dirs
- when: restic_backup_now
- shell: /usr/local/bin/restic -p /root/.restic.password -r {{ restic_repo }} backup {{ item.dir }}
- environment: "{{ restic_repo_environment }}"
- with_items: "{{ restic_stateful_dirs }}"
|