mirror of
https://github.com/roles-ansible/ansible_role_restic_archiver.git
synced 2024-08-16 10:09:49 +02:00
79 lines
2.5 KiB
Markdown
79 lines
2.5 KiB
Markdown
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](https://github.com/arillso/ansible.restic.git).
|
|
We have had good experience with this role for the [restic rest server](https://github.com/donat-b/ansible-restic-rest.git).
|
|
|
|
Variables:
|
|
---------
|
|
```yml
|
|
---
|
|
# 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
|
|
|
|
restic_archiver__log_output: true
|
|
restic_archiver__logrotate: true
|
|
|
|
# restic default options
|
|
restic_archiver__default_opt: ''
|
|
|
|
# version check for this playbook (true is recomended)
|
|
submodules_versioncheck: false
|
|
```
|
|
|