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_restic_archiver/README.md

90 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

ansible_role_restic_archiver
======================
2019-08-12 17:08:26 +02:00
2020-12-14 11:19:18 +01:00
ansible role to "archive" restic backups.
2020-12-14 11:19:18 +01:00
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
2019-08-12 17:08:26 +02:00
2020-12-14 11:19:18 +01:00
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.
2020-12-14 11:19:18 +01:00
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).
2020-12-14 11:19:18 +01:00
Variables:
---------
```yml
---
# which repos should we cleanup by default
2020-12-14 11:19:18 +01:00
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
2021-07-15 23:33:03 +02:00
# prune: true
2020-12-14 11:19:18 +01:00
# how long should we store all backups by default
2021-04-29 11:20:40 +02:00
restic_archiver__keep: 5
restic_archiver__keep_hourly: 16
restic_archiver__keep_daily: 14
2020-12-14 11:19:18 +01:00
restic_archiver__keep_weekly: 8
2021-04-29 11:20:40 +02:00
restic_archiver__keep_monthly: 16
2020-12-14 11:19:18 +01:00
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
2021-04-29 11:20:40 +02:00
restic_archiver__log_output: true
restic_archiver__logrotate: true
restic_archiver__mailsummary: false
restic_archiver__mail_on_error: false
restic_archiver__mailaddress: 'root@localhost'
2020-12-14 15:50:39 +01:00
# restic default options
2021-01-11 14:12:10 +01:00
restic_archiver__default_opt: ''
2021-04-29 11:20:40 +02:00
# additional msgs
restic_archiver__additional_mail_msg: ''
2020-12-14 11:19:18 +01:00
# version check for this playbook (true is recomended)
submodules_versioncheck: false
2021-04-29 11:20:40 +02:00
restic_archiver__cache_config: false
restic_archiver__cache_dir: '~/.cache/restic'
2021-07-15 23:33:03 +02:00
restic_archiver__prune: false
2021-04-29 11:20:40 +02:00
```