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

Ansible Galaxy

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.

Acerca del proyecto

Run daily backups for files, MySQL databases and PostgreSQL databases

Instalar
ansible-galaxy install alphanodes.backup
Licencia
gpl-3.0
Descargas
9.4k
Propietario
Professional Services with Open Source