Files
ansible-general/roles/borgmatic_config/tasks/main.yaml
2025-03-31 03:15:14 +03:00

36 lines
1.4 KiB
YAML

---
- name: Fail if hosts or directories listed in borgmatic_config_targets not in borgmatic_targets.
ansible.builtin.fail:
msg: All backup targets and directories must be listed in borgmatic_targets.
when: >-
borgmatic_config_targets
| items2dict(key_name='host', value_name='directories')
| ansible.builtin.combine(
borgmatic_targets | items2dict(key_name='host', value_name='directories'), list_merge='prepend_rp'
)
| dict2items(key_name='host', value_name='directories')
| difference(borgmatic_targets)
| length != 0
- name: Add borgmatic configuration for {{ borgmatic_config_name }}
ansible.builtin.template:
src: borgmatic.yaml.j2
dest: /etc/borgmatic.d/{{ borgmatic_config_name }}.yaml
mode: "0600"
no_log: true
- name: Add systemd timer for borgmatic {{ borgmatic_config_name }}
ansible.builtin.template:
src: borgmatic@.timer.j2
dest: /etc/systemd/system/borgmatic@{{ borgmatic_config_name }}.timer
mode: "0644"
register: _borgmatic_config_systemd_timer
notify: Restart borgmatic timer {{ borgmatic_config_name }}
- name: Enable systemd timer for borgmatic {{ borgmatic_config_name }}
ansible.builtin.systemd_service:
name: borgmatic@{{ borgmatic_config_name }}.timer
state: started
enabled: true
when: "not (ansible_check_mode and _borgmatic_config_systemd_timer.changed and _borgmatic_config_systemd_timer.diff.before == '')"