Merge pull request #11 from ONE400/retention_policy_config

Added retention policy settings to config
This commit is contained in:
Manuel Riel 2019-07-25 20:05:00 +08:00 committed by GitHub
commit 38fa7915a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 39 additions and 5 deletions

View File

@ -18,6 +18,7 @@ An Ansible Role that sets up automated remote backups on the target machine. Use
- `borg_exclude_from`: Read exclude patterns from one or more separate named files, one pattern per line. - `borg_exclude_from`: Read exclude patterns from one or more separate named files, one pattern per line.
- `borg_ssh_command`: Command to use instead of just "ssh". This can be used to specify ssh options. - `borg_ssh_command`: Command to use instead of just "ssh". This can be used to specify ssh options.
- `borg_encryption_passcommand`: The standard output of this command is used to unlock the encryption key. - `borg_encryption_passcommand`: The standard output of this command is used to unlock the encryption key.
- `borg_retention_policy`: Retention policy for how many backups to keep in each category (daily, weekly, monthly, etc).
## Example Playbook ## Example Playbook
@ -32,6 +33,11 @@ An Ansible Role that sets up automated remote backups on the target machine. Use
- /var/lib/automysqlbackup - /var/lib/automysqlbackup
borg_exclude_patterns: borg_exclude_patterns:
- /srv/www/old-sites - /srv/www/old-sites
borg_retention_policy:
keep_hourly: 3
keep_daily: 7
keep_weekly: 4
keep_monthly: 6
``` ```
## Planned features ## Planned features

View File

@ -8,3 +8,8 @@ borg_one_file_system: true
borg_exclude_from: [] borg_exclude_from: []
borg_encryption_passcommand: false borg_encryption_passcommand: false
borg_ssh_command: false borg_ssh_command: false
borg_retention_policy:
keep_hourly: 3
keep_daily: 7
keep_weekly: 4
keep_monthly: 6

View File

@ -79,17 +79,40 @@ storage:
# https://borgbackup.readthedocs.org/en/stable/usage.html#borg-prune for details. # https://borgbackup.readthedocs.org/en/stable/usage.html#borg-prune for details.
# At least one of the "keep" options is required for pruning to work. # At least one of the "keep" options is required for pruning to work.
retention: retention:
{% if borg_retention_policy.keep_secondly is defined %}
# Number of secondly archives to keep.
keep_secondly: {{ borg_retention_policy.keep_secondly }}
{% endif %}
{% if borg_retention_policy.keep_minutely is defined %}
# Number of minutely archives to keep.
keep_minutely: {{ borg_retention_policy.keep_minutely }}
{% endif %}
{% if borg_retention_policy.keep_hourly is defined %}
# Number of hourly archives to keep. # Number of hourly archives to keep.
keep_hourly: 3 keep_hourly: {{ borg_retention_policy.keep_hourly }}
{% endif %}
{% if borg_retention_policy.keep_daily is defined %}
# Number of daily archives to keep. # Number of daily archives to keep.
keep_daily: 7 keep_daily: {{ borg_retention_policy.keep_daily }}
{% endif %}
{% if borg_retention_policy.keep_weekly is defined %}
# Number of weekly archives to keep. # Number of weekly archives to keep.
keep_weekly: 4 keep_weekly: {{ borg_retention_policy.keep_weekly }}
{% endif %}
{% if borg_retention_policy.keep_monthly is defined %}
# Number of monthly archives to keep. # Number of monthly archives to keep.
keep_monthly: 6 keep_monthly: {{ borg_retention_policy.keep_monthly }}
{% endif %}
{% if borg_retention_policy.keep_yearly is defined %}
# Number of yearly archives to keep.
keep_yearly: {{ borg_retention_policy.keep_yearly }}
{% endif %}
# When pruning, only consider archive names starting with this prefix. # When pruning, only consider archive names starting with this prefix.
# Borg placeholders can be used. See the output of "borg help placeholders" for # Borg placeholders can be used. See the output of "borg help placeholders" for