humble-homelab/roles/backup/tasks/main.yml
2024-01-18 21:29:44 +01:00

67 lines
1.5 KiB
YAML

- name: upload restic binary
become: true
ansible.builtin.copy:
src: restic-arm64
dest: /usr/local/bin/restic
mode: '0755'
owner: root
group: root
- name: upload restic.sh script
become: true
ansible.builtin.template:
src: restic.j2
dest: /root/restic.sh
owner: root
group: root
mode: '0700'
- name: initialize restic repository
become: true
ansible.builtin.shell: /root/restic.sh init
# Handle if restic has already been initialized
register: result
failed_when:
- result.rc == 1
- '"config file already exists" not in result.stderr'
changed_when: '"config file already exists" not in result.stderr'
- name: upload backup script
become: true
ansible.builtin.template:
src: backup.j2
dest: /root/backup.sh
mode: '0700'
owner: root
group: root
- name: upload system-email notification script
become: true
ansible.builtin.template:
src: system-email.sh.j2
dest: /usr/local/bin/system-email
mode: '0755'
owner: root
group: root
- name: setup status-email.service
become: true
ansible.builtin.template:
src: status-email.service.j2
dest: /etc/systemd/system/status-email@.service
- name: upload systemd unit files
become: true
copy:
src: "{{ item }}"
dest: "/etc/systemd/system/{{ item }}"
with_items:
- backup.service
- backup.timer
- name: Enable backup.timer
become: true
ansible.builtin.systemd:
name: backup.timer
state: started
enabled: true