newtonne.backup
Rol de Ansible: Copia de Seguridad
Instala y configura borgmatic y borg para la copia de seguridad automatizada de archivos, así como bases de datos MySQL y PostgreSQL.
Requisitos
Requisitos opcionales:
cron
debe estar instalado para automatizar las copias de seguridad.Debe estar instalado MySQL o una base de datos compatible con MySQL para realizar copias de seguridad de bases de datos MySQL. Lo mismo para bases de datos PostgreSQL.
Variables de Rol
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml):
Configuración relacionada con Borgmatic
backup_directories: []
La lista de directorios (o archivos individuales) para copiar.
backup_mysql_databases: []
La lista de bases de datos MySQL para hacer copia de seguridad. Consulte borgmatic - ganchos de volcado de base de datos para más información.
backup_postgresql_databases: []
La lista de bases de datos PostgreSQL para hacer copia de seguridad. Consulte borgmatic - ganchos de volcado de base de datos para más información.
backup_repositories: []
La lista de repositorios borg
a los que hacer copia de seguridad. Deben ser creados previamente usando borg init
. También consulte documentación de borg sobre URL de repositorios.
backup_location_options: {}
backup_storage_options: {}
backup_retention_options: {}
backup_consistency_options: {}
backup_hooks_options: {}
Estas variables se pueden usar para proporcionar configuración adicional a borgmatic
, como la frase de paso de cifrado para el repositorio borg
o scripts/comandos de gancho alternativos. Consulte el esquema de borgmatic para la lista completa de opciones de configuración.
backup_hooks_globlist: hooks/*
Los patrones glob que la búsqueda de archivo glob utilizará para encontrar scripts de gancho en la máquina de control.
backup_hooks_directory: /etc/borgmatic/hooks
El directorio al que se copiarán los scripts de gancho borgmatic
encontrados por los patrones glob anteriores.
General
backup_cron_jobs
- schedule: "0 3 * * *"
# action: create
La lista de especificaciones de tiempo de cron y acciones a realizar. Si no se especifica ninguna acción, borgmatic
realizará todas las acciones, es decir, poda, crear y verificar (ver documentos de borgmatic - configurar copias de seguridad). Si se deja en blanco, no se configurará ningún crontab.
backup_cron_path: "{{ backup_borg_path | dirname }}:/usr/bin:/bin"
El valor de $PATH
que se configurará en la parte superior del crontab.
backup_verbosity: 0
La verbosidad con la que se ejecutará borgmatic
. Consulte referencia de línea de comando de borgmatic.
backup_user: root
El usuario que ejecutará las copias de seguridad y será el propietario de los archivos y directorios relacionados con la copia de seguridad.
backup_group: root
El grupo que será propietario de los archivos y directorios relacionados con la copia de seguridad.
backup_config_directory: /etc/borgmatic
El directorio en el que se colocará el archivo de configuración de borgmatic
.
backup_log_file: /var/log/borgmatic.log
El archivo en el que se registrará la salida de borgmatic
.
Instalación relacionada
backup_borg_keyserver: hkps://keys.openpgp.org
El servidor de claves GPG desde el cual descargar la clave pública de borg
.
backup_borg_gpg_fpr: 6D5BEF9ADD2075805747B70F9F88FB52FAF7B393
El huella digital de la clave pública de borg
. Consulte documentación de borg - seguridad.
backup_borg_url: https://github.com/borgbackup/borg/releases/download
La URL desde la que descargar el binario de borg
.
backup_borg_asset: borg-linux{{ ansible_architecture [-2:] }}
El nombre del activo binario de borg
a descargar.
backup_borg_version: 1.1.17
La versión del binario de borg
a descargar.
backup_borg_path: /usr/local/bin/borg
La ruta donde se instalará el binario de borg
. Tenga en cuenta que no se intentará instalar borg
si este archivo ya existe.
backup_borgmatic_version: 1.5.20
La versión de borgmatic
a instalar usando pip.
backup_borgmatic_venv: /etc/borgmatic/venv
El entorno virtual en el que pip instalará borgmatic
. Se creará si no existe.
Dependencias
Ninguna
Ejemplo de Playbook
- hosts: servers
vars:
backup_directories:
- /etc/myapp
- /var/myapp
backup_repositories:
- user@host1:server_backup1
- user@host2:server_backup2
backup_storage_options:
encryption_passphrase: secretpassword
backup_retention_options:
keep_daily: 7
keep_weekly: 4
backup_cron_jobs:
- schedule: "0 2 * * *"
roles:
- { role: newtonne.backup }
Licencia
MIT
Backup files, and MySQL and PostgreSQL databases using borg and borgmatic.
ansible-galaxy install newtonne.backup