tag1consulting.borgbackup
Rol de respaldo de Borg
Este es un fork de https://github.com/FiaasCo/borgbackup que fue escrito originalmente por Luc Stroobant y Dieter Verhelst. Este fork es mantenido por Tag1 Consulting, Inc.
Este rol instala Borg backup en servidores y clientes de borgbackup. El rol contiene un script envoltorio 'borg-backup' para facilitar el uso en el cliente. Las opciones soportadas incluyen borg-backup info | init | list | backup | mount. Automysqlbackup se ejecutará como comando previo a la copia de seguridad si está instalado. El rol soporta tanto almacenamiento de respaldo autohospedado como almacenamiento externo, como rsync.net y hetzner storage box como servidor Borg.
Es posible configurar repositorios de solo adjunto para asegurar las copias de seguridad contra eliminación desde el cliente.
Se requiere Ansible 2.4 o superior para ejecutar este rol.
Ansible Galaxy
Este rol es tag1consulting.borgbackup
en Ansible Galaxy. Para usar esto en un playbook, añade lo siguiente a tu archivo requirements.txt
:
# https://github.com/tag1consulting/ansible-role-borgbackup
- src: "tag1consulting.borgbackup"
Variables requeridas
Define un grupo borgbackup_servers en tu inventario con uno o más hosts. El grupo borgbackup_management solo es necesario si deseas habilitar el modo de solo adjunto y podar las copias de seguridad desde un host seguro.
[borgbackup_servers]
backup1.fiaas.co
[borgbackup_management]
supersecurehost
Define variables de grupo o host para tus puntos finales de respaldo y retención:
borgbackup_servers:
- fqdn: backup1.fiaas.co
user: borgbackup
type: normal
home: /backup/
pool: repos
options: ""
- fqdn: yourhost.rsync.net
user: userid
type: rsync.net
home: ""
pool: repos
options: "--remote-path=borg1"
- fqdn: username.your-storagebox.de
user: username
type: hetzner
home: ""
pool: repos
options: ""
borgbackup_retention:
hourly: 12
daily: 7
weekly: 4
monthly: 6
yearly: 1
ADVERTENCIA: el / final en item.home es requerido.
Define una borg_passphrase para cada host. host_vars\client1:
borgbackup_passphrase: Ahl9EiNohr5koosh1Wohs3Shoo3ooZ6p
Por defecto, el rol crea un cronjob en /etc/cron.d/borg-backup que se ejecuta como root todos los días en una hora aleatoria entre las 0 y 5am, en un minuto aleatorio. Anula los valores predeterminados si es necesario:
borgbackup_client_user: root
borgbackup_cron_day: "*"
borgbackup_cron_minute: "{{ 59|random }}"
borgbackup_cron_hour: "{{ 5|random }}"
Anula borgbackup_client_user donde sea necesario, por ejemplo, si tienes una laptop con un directorio de inicio cifrado, deberás ejecutar el respaldo como el usuario de ese directorio.
Establece borgbackup_appendonly: True en las variables de host o grupo si deseas repositorios de solo adjunto. En ese caso, es posible definir un nombre de host en borgbackup_management_station donde se configurará un script de poda de Borg. Solo la estación de gestión tendrá permiso para podar copias de seguridad antiguas para (todos) los clientes. Esto generará un servidor con opciones de clave ssh --append-only. Si configuras borgbackup_appendonly_repoconfig en True, esto también deshabilitará la posibilidad de eliminar copias de seguridad desde la estación de gestión. (O al menos: no es posible eliminarlas hasta que reconfigures el repositorio y esto actualmente no está soportado en el script de poda). Ten en cuenta las limitaciones del modo de solo adjunto: las copias de seguridad podadas parecen ser eliminadas, pero solo se eliminan en el registro de transacciones hasta que algo escribe en modo normal en el repositorio.
Asegúrate de verificar los valores predeterminados configurados para este rol, que contienen la lista de ubicaciones predeterminadas que se están respaldando en backup_include. Anula esto en tu inventario donde sea necesario.
Instalación de Borg desde el paquete EPEL
Borg se puede instalar desde un paquete EPEL estableciendo la variable:
borgbackup_install_from_pkg: true
El repositorio EPEL debe estar presente para que esto tenga éxito. Para instalar el repositorio EPEL usando el rol geerlingguy.repo-epel
, establece:
borgbackup_install_epel: true
Uso
Configura Borg en el servidor y en un cliente:
ansible-playbook -i inventory/test backup.yml -l backup1.fiaas.co
ansible-playbook -i inventory/test backup.yml -l client1.fiaas.co
Lectura adicional
Install Borg backup server and client (with rsync.net server support)
ansible-galaxy install tag1consulting.borgbackup