l3d.restic_archiver
ansible_role_restic_archiver
Rol de Ansible para "archivar" copias de seguridad de restic.
El escenario para este rol es:
- Tienes el servidor de restic funcionando en modo solo escritura.
- Envías copias de seguridad desde otros servidores a tu servidor de copias de seguridad de restic.
Ahora no deseas almacenar todas las copias de seguridad de manera indefinida, sino solo las de los últimos días, una copia diaria y de forma semanal, mensual y anual algunas... como lo haces habitualmente.
Por supuesto, no quieres dar acceso a otros, así que resuelves todo esto con un cronjob local. Y este cronjob está construido con este rol de Ansible.
Como característica adicional, puedes transferir opcionalmente las copias de seguridad a otro disco (incluso con una contraseña diferente). Esto también es un concepto de respaldo muy atractivo desde el punto de vista de la seguridad.
Este rol no instala restic. Para eso, recomendamos este rol de ansible. Hemos tenido buenas experiencias con este rol para el servidor de restic.
Variables:
---
# qué repositorios debemos limpiar por defecto
restic_archiver__repos: {}
# - name: ejemplo_servidor:
# location: /srv/restic/ejemplo_servidor_repo
# password: contrasegura4eXaMpleServidor
# - name: otro_servidor
# location: /srv/restic/otro_servidor_repo
# password: xtraseguradiferentecontraseña4otro
# archive: true
# archive_location: /mnt/archive/otro_servidor_repo
# archive_password: contraseña_de_archivo4otro_servidor
# archive_cleanup: true
# keep_last: 5
# keep_hourly: 4
# keep_daily: 1
# keep_weekly: 1
# keep_monthly: 1
# keep_yearly: 1
# keep_within: 1
# prune: true
# cuánto tiempo debemos almacenar todas las copias de seguridad por defecto
restic_archiver__keep: 5
restic_archiver__keep_hourly: 16
restic_archiver__keep_daily: 14
restic_archiver__keep_weekly: 8
restic_archiver__keep_monthly: 16
restic_archiver__keep_yearly: 12
# propietario y usuario de todas las cosas de restic
restic_archiver__owner: 'root'
restic_archiver__group: 'root'
# programar el cronjob de restic
restic_archiver__hour: '3'
restic_archiver__minute: '32'
# validar si el disco está montado
restic_archiver__mount_required: false
# qué disco debe estar montado
restic_archiver__mount_disk: '/mnt/'
# ¿desmontar después de usar?
restic_archiver__umount_after_usage: false
# paquetes requeridos
restic_archiver__package:
- cron
restic_archiver__log_output: true
restic_archiver__logrotate: true
restic_archiver__mailsummary: false
restic_archiver__mail_on_error: false
restic_archiver__mailaddress: 'root@localhost'
# opciones predeterminadas de restic
restic_archiver__default_opt: ''
# mensajes adicionales
restic_archiver__additional_mail_msg: ''
# verificación de versión para este playbook (se recomienda true)
submodules_versioncheck: false
restic_archiver__cache_config: false
restic_archiver__cache_dir: '~/.cache/restic'
restic_archiver__prune: false
ansible-galaxy install l3d.restic_archiver