67 lines
No EOL
1.5 KiB
YAML
67 lines
No EOL
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 |