60 lines
1.6 KiB
Markdown
60 lines
1.6 KiB
Markdown
Borgbackup
|
|
==========
|
|
|
|
Ansible [Borgbackup](https://borgbackup.readthedocs.io/en/stable/) role.
|
|
|
|
Features:
|
|
* Repository or binary installation
|
|
* Schedules regular backup jobs
|
|
* Schedules regular prune jobs to keep backup windows clean
|
|
* Flexible configuration to list backup targets
|
|
|
|
Role Variables
|
|
--------------
|
|
|
|
see `defaults/main.yml`
|
|
|
|
Example Playbook
|
|
----------------
|
|
|
|
- hosts: all
|
|
roles:
|
|
- role: SphericalElephant.borgbackup
|
|
borgbackup_client: True
|
|
borgbackup_client_backup_server: backup01.example.com
|
|
borgbackup_create_jobs:
|
|
- name: system
|
|
day: "*"
|
|
hour: "0"
|
|
minute: "{{ 59 | random }}"
|
|
directories:
|
|
- /etc
|
|
- /home
|
|
- /var
|
|
excludes:
|
|
- 're:^/var/lib/apt'
|
|
- 're:^/var/[^/]+\/cache/'
|
|
borgbackup_prune_jobs:
|
|
- name: system
|
|
prune_options: "--keep-daily=7 --keep-weekly=4"
|
|
day: "*"
|
|
hour: "8"
|
|
minute: "0"
|
|
borgbackup_check_jobs:
|
|
- name: system
|
|
check_options: "--lock-wait 28800"
|
|
day: "1"
|
|
hour: "12"
|
|
minute: "0"
|
|
|
|
|
|
You can easily assign client and server attributes from your inventory with something similar to the following:
|
|
|
|
borgbackup_client: "{{ (inventory_hostname in groups.borgbackup_server)|ternary(False, True) }}"
|
|
borgbackup_client_backup_server: "{{ groups.borgbackup_server[0] }}"
|
|
|
|
License
|
|
-------
|
|
|
|
Apache 2.0
|