aboutsummaryrefslogtreecommitdiffstats
path: root/templates/borg_backup_script.j2
diff options
context:
space:
mode:
authorColin Wilk <colin@wilk.cx>2026-09-01 21:01:05 +0200
committerColin Wilk <colin@wilk.cx>2026-09-01 21:43:57 +0200
commit9c7586c7c3a235672ec6490d1a8bc44a222ce5d1 (patch)
tree8b36c5ee3105da2ae769c0d9cd96683d213c949d /templates/borg_backup_script.j2
parentfa137a92e1084a07608a4008ec0cb891baa76774 (diff)
downloadansible-role-borgbackup-9c7586c7c3a235672ec6490d1a8bc44a222ce5d1.tar.gz
ansible-role-borgbackup-9c7586c7c3a235672ec6490d1a8bc44a222ce5d1.zip
Add borg prune and compact jobs
Run repository retention either after a successful backup or from a dedicated systemd timer. Clean up script generation with templates and expand molecule test coverage. BREAKING CHANGE: Aggregate backup scripts are no longer managed, and state=preset now requires at least one readable included directory.
Diffstat (limited to 'templates/borg_backup_script.j2')
-rw-r--r--templates/borg_backup_script.j215
1 files changed, 15 insertions, 0 deletions
diff --git a/templates/borg_backup_script.j2 b/templates/borg_backup_script.j2
new file mode 100644
index 0000000..0ef22ff
--- /dev/null
+++ b/templates/borg_backup_script.j2
@@ -0,0 +1,15 @@
+#!/bin/bash
+export BORG_PASSPHRASE={{ borg_passphrase | quote }}
+{% if borg_ssh_key_per_repo %}
+export BORG_RSH="ssh -i {{ borg_ssh_key_path }}"
+{% endif %}
+borg create \
+ -C {{ borg_compression }} \
+{% for excluded_dir in borg_excluded_dirs %}
+ --exclude {{ excluded_dir | quote }} \
+{% endfor %}
+{% if borg_create_additional_arguments %}
+ {{ borg_create_additional_arguments }} \
+{% endif %}
+ {{ borg_server_user }}@{{ borg_server_host_url }}:{{ borg_server_user_home }}/{{ borg_repo_name }}::{{ borg_backup_name_format }} \
+ {{ borg_included_dirs | map('quote') | join(' ') }}