57 lines
1.6 KiB
YAML
57 lines
1.6 KiB
YAML
---
|
|
- name: Ensure download directory is present
|
|
ansible.builtin.file:
|
|
path: "/home/debian/restic-{{ restic_version }}"
|
|
state: directory
|
|
mode: '0755'
|
|
|
|
- name: Ensure compressed binary is downloaded
|
|
ansible.builtin.get_url:
|
|
url: "https://github.com/restic/restic/releases/download/v{{ restic_version }}/restic_{{ restic_version }}_linux_arm64.bz2"
|
|
dest: "/home/debian/restic-{{ restic_version }}/restic-{{ restic_version }}.bz2"
|
|
register: res
|
|
|
|
- name: Ensure binary is decompressed
|
|
ansible.builtin.shell:
|
|
cmd: "bunzip2 -k /home/debian/restic-{{ restic_version }}/restic-{{ restic_version }}.bz2"
|
|
when: 'res.changed'
|
|
|
|
- name: Ensure binary is copied to correct location
|
|
ansible.builtin.copy:
|
|
src: "/home/debian/restic-{{ restic_version }}/restic-{{ restic_version }}"
|
|
remote_src: true
|
|
dest: '/usr/local/bin/restic'
|
|
owner: 'root'
|
|
group: 'root'
|
|
mode: '0755'
|
|
when: 'res.changed'
|
|
|
|
- name: Ensure backup scripts directory is present
|
|
ansible.builtin.file:
|
|
path: '/etc/backups'
|
|
state: directory
|
|
mode: '0755'
|
|
|
|
- name: Ensure Restic backups password file is present
|
|
ansible.builtin.copy:
|
|
src: 'restic_backups_passwd'
|
|
dest: '/etc/backups/restic_backups_passwd'
|
|
owner: root
|
|
group: root
|
|
mode: '0600'
|
|
|
|
- name: Ensure backup-all script is present
|
|
ansible.builtin.template:
|
|
src: "backup-all.sh.j2"
|
|
dest: '/etc/backups/backup-all.sh'
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
|
|
- name: Ensure backup cronjob is enabled
|
|
ansible.builtin.cron:
|
|
name: 'Perform nightly backups'
|
|
minute: '0'
|
|
hour: '2'
|
|
job: '/usr/bin/bash /etc/backups/backup-all.sh'
|