ansible/roles/borgbackup-client/tasks/main.yml

74 lines
1.7 KiB
YAML

---
- name: Pin borgmatic
template:
src: apt/{{ item }}.j2
dest: /etc/apt/{{ item }}
loop:
- sources.list.d/bullseye.list
- preferences.d/borgmatic-bullseye
when:
- ansible_distribution == "Debian"
- ansible_distribution_major_version | int <= 10
- ansible_distribution_release != "bullseye"
- name: Don't pin borgmatic if we are on bullseye
file:
path: /etc/apt/{{ item }}
state: absent
loop:
- sources.list.d/bullseye.list
- preferences.d/borgmatic-bullseye
when:
- ansible_distribution == "Debian"
- ansible_distribution_release == "bullseye"
- name: Install borgbackup
apt:
update_cache: true
name:
- borgbackup
- borgmatic
state: present
register: apt_result
retries: 3
until: apt_result is succeeded
- name: Ensures /etc/borgmatic exists
file:
path: /etc/borgmatic
state: directory
mode: 0700
owner: root
- name: Deploy ssh private key
template:
src: borgmatic/id_ed25519_borg.j2
dest: /etc/borgmatic/id_ed25519_borg
mode: 0600
owner: root
- name: Deploy borgmatic config
template:
src: borgmatic/config.yaml.j2
dest: /etc/borgmatic/config{{ borg.path_suffix | default('') }}.yaml
mode: 0600
owner: root
group: root
- name: Init borg repository
command:
cmd: /usr/bin/borgmatic init -c /etc/borgmatic/config{{ borg.path_suffix | default('') }}.yaml -e repokey
register: borg_init
changed_when: '"does not exist" in borg_init.stderr'
- name: Deploy borg cron
template:
src: cron.d/borg.j2
dest: /etc/cron.d/borg{{ borg.path_suffix | default('') }}
- name: Indicate role in motd
template:
src: update-motd.d/04-service.j2
dest: /etc/update-motd.d/04-borgbackup
mode: 0755