diff --git a/roles/borgbackup-client/tasks/main.yml b/roles/borgbackup-client/tasks/main.yml index cbec020964d520c07acc8d469e29951139224705..f71fce3391fb8e1ddaaedbdeb58cfc0f61a37db3 100644 --- a/roles/borgbackup-client/tasks/main.yml +++ b/roles/borgbackup-client/tasks/main.yml @@ -41,6 +41,12 @@ owner: root group: root +- name: Init borg repository + command: + cmd: /usr/bin/borgmatic init -e repokey + register: borg_init + changed_when: '"does not exist" in borg_init.stderr' + - name: Deploy borg cron template: src: "cron.d/borg.j2" diff --git a/roles/borgbackup-client/templates/borgmatic/config.yaml.j2 b/roles/borgbackup-client/templates/borgmatic/config.yaml.j2 index 123a57acc0a6cf72d75f1dd72b72082a3cdbb96e..dcd1b36ba4cb617e15a0b1cfe15144ba5058965a 100644 --- a/roles/borgbackup-client/templates/borgmatic/config.yaml.j2 +++ b/roles/borgbackup-client/templates/borgmatic/config.yaml.j2 @@ -38,12 +38,17 @@ storage: umask: 0077 lock_wait: 5 archive_name_format: '{hostname}-{now}' +{% set extra_init = borg.extra_prune | default([]) %} {% set extra_prune = borg.extra_prune | default([]) %} {% set extra_create = borg.extra_create | default([]) %} {% set extra_check = borg.extra_check | default([]) %} +{% if extra_init or extra_prune or extra_create or extra_check %} extra_borg_options: +{% endif %} +{% if extra_init %} # Extra command-line options to pass to "borg init". - init: --make-parent-dirs {% for cmd in borg.extra_init | default([]) %}--{{ cmd }} {% endfor %} + init: {% for cmd in extra_init %}--{{ cmd }} {% endfor %} +{% endif %} {% if extra_prune %} # Extra command-line options to pass to "borg prune". prune: {% for cmd in extra_prune %}--{{ cmd }} {% endfor %}