alphanodes.backup
Rol de Ansible: Copia de Seguridad
Realiza copias de seguridad diarias, semanales y mensuales de archivos, bases de datos MySQL y bases de datos PostgreSQL en servidores Debian y Ubuntu.
La rotación de copias de seguridad es configurable, por ejemplo, puedes usar el esquema Abuelo-padre-hijo
Dependencias
ninguna
Instalación
Ansible 2+
Usando la línea de comandos de ansible galaxy:
ansible-galaxy install alphanodes.backup
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml
):
backup_dir: /srv/backups
Directorio para las copias de seguridad. Asegúrate de que haya suficiente espacio en disco en esta partición. Utiliza comillas para evitar problemas de conversión (por ejemplo, con to_nice_yaml)
backup_dir_mode: '0755'
Permisos del directorio para backup_dir
backup_dir_owner: root
Propietario del directorio para backup_dir
backup_dir_group: root
Grupo del directorio para backup_dir
backup_max_days: 7
Cantidad de días para los conjuntos de copias de seguridad diarias. Esto significa que solo se almacenan backup_max_days
conjuntos (días). Los conjuntos más antiguos se eliminan automáticamente. los valores deben ser >= 1.
backup_max_weeks: 1
Cantidad de semanas para los conjuntos de copias de seguridad semanales. Esto significa que solo se almacenan backup_max_weeks
conjuntos (semanas). Los conjuntos más antiguos se eliminan automáticamente. Los valores deben ser >= 1. La copia de seguridad semanal se crea cada primer día de la semana. En este día solo se crea esta copia (y no una copia diaria, ya que sería un duplicado).
backup_max_months: 1
Cantidad de meses para los conjuntos de copias de seguridad mensuales. Esto significa que solo se almacenan backup_max_months
conjuntos (meses). Los conjuntos más antiguos se eliminan automáticamente. Los valores deben ser >= 1. La copia de seguridad mensual se crea cada primer día del mes. En este día solo se crea esta copia (y no se crean las copias diarias o semanales, ya que sería un duplicado).
backup_remote_host: ''
Nombre del host para sincronizar copias de seguridad para uso de backup_remote_transfer
.
backup_remote_port: ''
Puerto para sincronizar copias de seguridad para uso de backup_remote_transfer
.
backup_remote_dir: ''
Directorio remoto para backup_remote_host
para uso de backup_remote_transfer
.
backup_remote_excludes:
- '*.journal'
- '.nfs*'
- '*.tar'
Estos archivos se excluyen de la sincronización al host remoto. Esto solo se usa si backup_remote_transfer
es rsync
.
backup_rsync_options: '-avz --delete'
Opciones de rsync para backup_remote_transfer
con rsync
.
backup_remote_transfer: rsync
Tipo de sincronización. Los valores posibles son: rsync o lftp.
backup_remote_user: ''
Usuario para la sincronización remota. Esto solo se usa cuando backup_remote_transfer
es lftp.
backup_remote_password: ''
Contraseña para la sincronización remota. Esto solo se usa cuando backup_remote_transfer
es lftp.
backup_with_borg: ''
Si se debe ejecutar backupborg.
backup_db_dump_format: .sql.gz
Archivos SQL descomprimidos (.sql) así como bzip2 (.bz2), gzip (.gz) y xz. En este momento solo se utiliza para copias de seguridad de mysql.
backup_with_mysql: false
Ejecutar volcado de copia de seguridad de MySQL (MariaDB). Todas las bases de datos se almacenan en archivos separados.
backup_with_postgresql: false
Ejecutar volcado de copia de seguridad de PostgreSQL. Todas las bases de datos se almacenan en archivos separados.
backup_with_mongodb: false
Ejecutar volcado de copia de seguridad de MongoDB. Todas las bases de datos se almacenan en un solo archivo de archivo.
backup_mongodb_options: '--archive --gzip'
Opciones para el volcado de mongodb.
backup_mysql_db_excludes:
- performance_schema
- information_schema
- sys
backup_mysql_single_transaction: true
# backup_mysqldump_options: '--extended-insert=true --opt --single-transaction'
Opciones personalizadas de mysql (siempre se utiliza sql.gz). Si se establece, se usa el volcado nativo de mysql (sin ansible). Por defecto, esto no está configurado.
backup_postgresqldump_options: "--no-owner -Fc"
Opciones de volcado de PostgreSQL.
backup_create_hashfiles: false
Crear archivos hash de todos los conjuntos de copias de seguridad.
backup_files_unsafe_writes: false
Si backup_files_unsafe_writes
es sí y se encuentran archivos cambiados al crear archivos tar, no se informan errores. tar se ejecuta con las opciones adicionales --warning=no-file-removed --warning=no-file-changed --warning=no-file-ignored
.
Esta opción puede ser sobreescrita para cada conjunto con unsafe_writes
.
backup_sets: []
Conjuntos de copias de seguridad para la copia de archivos. name
se utiliza como nombre del archivo de respaldo. src
es el directorio de archivos que se debe respaldar. unsafe_writes
sobrescribe backup_files_unsafe_writes
. excludes
es una lista que se puede usar para excluir archivos o directorios.
backup_one_per_day_limit: true
Crear solo un conjunto de copias de seguridad por día. Los conjuntos de copias de seguridad existentes del mismo día se eliminarán.
#sync_master: anything
Si sync_master está definido, la copia de seguridad se omitirá. Puedes usarlo para entornos de replicación.
backup_skip_sync_clients: true
Si sync_master está definido, esto significa que es un sync_client.
backup_pre_commands: []
Lista de comandos que deben ejecutarse antes del volcado de copia de seguridad.
backup_post_commands: []
Lista de comandos que se ejecutan después de que se ha creado el volcado de copia de seguridad.
Ejemplo de Playbook
- hosts: nombre-servidor
vars:
backup_sets:
- name: etc
src: /etc
roles:
- alphanodes.backup
Ejemplo Extendió de Playbook
- hosts: nombre-servidor
vars:
backup_max_days: 14
backup_max_weeks: 4
backup_max_months: 6
backup_with_postgresql: true
backup_dir_mode: '0770'
backup_dir_group: postgres
backup_sets:
- name: etc
src: /etc
- name: jenkins
src: /var/lib/jenkins
unsafe_writes: true
excludes:
- builds
- workspace
roles:
- alphanodes.backup
Licencia
GPL Versión 3
Información del Autor
Este rol fue creado en 2018 por AlphaNodes.
Run daily backups for files, MySQL databases and PostgreSQL databases
ansible-galaxy install alphanodes.backup