1
0
Fork 0
mirror of https://github.com/roles-ansible/ansible_role_restic_archiver.git synced 2024-08-16 10:09:49 +02:00
ansible role to cleanup restic backup at the writeonly restic rest-server
Find a file
2020-12-14 15:08:37 +01:00
.github add README and complete template 2020-12-14 11:19:18 +01:00
defaults Update restic error handling and install cron 2020-12-14 12:02:36 +01:00
meta make template usable 2020-12-09 17:26:16 +01:00
tasks Update restic error handling and install cron 2020-12-14 12:02:36 +01:00
templates restic pipefail pipeline and mounting 2020-12-14 15:08:37 +01:00
vars restic pipefail pipeline and mounting 2020-12-14 15:08:37 +01:00
.gitignore adds Gitignore 2019-08-12 17:23:44 +02:00
LICENSE start preparing role for archiv cleanup functions 2020-11-20 11:03:53 +01:00
README.md Update restic error handling and install cron 2020-12-14 12:02:36 +01:00
versioncheck.yml Add versionscheck 2020-12-07 18:32:04 +01:00

ansible_role_restic_archiver

ansible role to "archive" restic backups.

The scenario for this role is:

  • You have the restic rest server running in write-only mode
  • you send backups from other servers to your restic backup server

Now you don't want to store all backups indefinitely, but only for the last days a daily backup and otherwise weekly, monthly, yearly a few... just like you do it.

Of course you don't want to give access to others, so you solve the whole thing with a local cronjob. And this cronjob is built with this Ansible role.

As a bonus feature, you can optionally transfer the backups to another disk (even with a different password). Which is also a very charming backup concept from a security point of view.

this role does not install restic. For that, we recommend this ansible role. We have had good experience with this role for the restic rest server.

Variables:

---
# which repos should we cleanup by default
restic_archiver__repos: {}
#  - name: example_server:
#    location: /srv/restic/example_server_repo
#    password: securepassword4eXaMpleSserver
#  - name: other_server
#    location: /srv/restic/other_server_repo
#    password: xtrasecuredifferentpassword4other
#    archive: true
#    archive_location: /mnt/archive/other_server_repo
#    archive_password: archive4other_server_password
#    archive_cleanup: true
#    keep_last: 5
#    keep_hourly: 4
#    keep_daily: 1
#    keep_weekly: 1
#    keep_monthly: 1
#    keep_yearly: 1
#    keep_within: 1

# how long should we store all backups by default
restic_archiver__keep: 9
restic_archiver__keep_hourly: 28
restic_archiver__keep_daily: 26
restic_archiver__keep_weekly: 8
restic_archiver__keep_monthly: 13
restic_archiver__keep_yearly: 12

# owner and user of all restic stuff
restic_archiver__owner: 'root'
restic_archiver__group: 'root'

# shedule restic cronjob
restic_archiver__hour: '3'
restic_archiver__minute: '32'

# validate if disk is mounted
restic_archiver__mount_required: false
# which disk have to be mounted
restic_archiver__mount_disk: '/mnt/'
# umount after use?
restic_archiver__umount_after_usage: false

# required packages
restic_archiver__package:
  - cron

# version check for this playbook (true is recomended)
submodules_versioncheck: false