gcoop-libre.mysqldump

Rol de Ansible: gcoop-libre.mysqldump

Este rol configura el acceso a MySQL/MariaDB/Percona en localhost y un archivo cron para realizar copias de seguridad utilizando el comando mysqldump.

Requisitos

  • python-mysqldb
  • MySQL/MariaDB/Percona

Opcional

El Plugin de Búsqueda de Contraseñas de Ansible te permite usar un almacén de contraseñas compatible con pass para generar contraseñas encriptadas. Imita el comportamiento de la búsqueda de contraseñas, pero usa pass en lugar de archivos de texto plano para almacenar las contraseñas.

Variables del Rol

Variables disponibles con valores predeterminados (ver defaults/main.yml).


gcoop_mysqldump_cron_entries:

  - name: mensual
    minute: 0
    hour: 2
    day: '*/7'
    format: '%b'
    database: "{{ gcoop_mysqldump_database }}"

  - name: diario
    minute: 0
    hour: 1
    day: '*'
    format: '%a'
    database: "{{ gcoop_mysqldump_database }}"

  - name: horario
    minute: 30
    hour: '*'
    day: '*'
    format: ''
    database: 'mysql'

Las entradas predeterminadas gcoop_mysqldump_cron_entries generan los siguientes archivos en el directorio /backup/sql:

Un archivo por día de la semana:

    hostname-dbname1-lun.sql.gz
    hostname-dbname1-mar.sql.gz
    hostname-dbname1-mie.sql.gz
    hostname-dbname1-jue.sql.gz
    hostname-dbname1-vie.sql.gz
    hostname-dbname1-sab.sql.gz
    hostname-dbname1-dom.sql.gz
    hostname-dbname2-lun.sql.gz
    hostname-dbname2-mar.sql.gz
    hostname-dbname2-mie.sql.gz
    hostname-dbname2-jue.sql.gz
    hostname-dbname2-vie.sql.gz
    hostname-dbname2-sab.sql.gz
    hostname-dbname2-dom.sql.gz

Un archivo por mes (actualizado cada 7 días):

    hostname-dbname1-ene.sql.gz
    hostname-dbname1-feb.sql.gz
    ...
    hostname-dbname1-dic.sql.gz
    hostname-dbname2-ene.sql.gz
    ...
    hostname-dbname2-feb.sql.gz
    hostname-dbname2-dic.sql.gz

Un archivo actualizado con la última copia (actualizado cada 1 hora):

    hostname-dbname1.sql.gz
    hostname-dbname2.sql.gz

Syslog

Por defecto, el rol registra el trabajo cron en syslog:

root@dbserver:/backup/sql# tail -f /var/log/syslog

Jun 25 02:30:02 dbserver mysqldump: Inicio: 2016-06-25 02:30 Fin: 2016-06-25 02:30 Duración: 00:00:01 Archivo: c2340030bd3ec4c5b890a7e7ae80fd18  /backup/sql/dbserver-mysql.sql.gz
Jun 25 02:30:02 dbserver mysqldump: Inicio: 2016-06-25 02:30 Fin: 2016-06-25 02:30 Duración: 00:00:00 Archivo: 5b5f36528df547e08f42db615e22ded6  /backup/sql/dbserver-information_schema-jun.sql.gz
Jun 25 02:30:02 dbserver mysqldump: Inicio: 2016-06-25 02:30 Fin: 2016-06-25 02:30 Duración: 00:00:00 Archivo: 6d952bdd7edf0e5663bbd487dbcaf46c  /backup/sql/dbserver-mysql-jun.sql.gz

Dependencias

Ninguna.

Ejemplo de Playbook

Si deseas crear un nuevo sistema y usuario mysql usando el plugin de búsqueda de contraseñas:

    - hosts: localhost
      become: yes
      remote_user: debian

      roles:
        - role: gcoop-libre.mysqldump
          gcoop_mysqldump_create_mysql_user: yes
          gcoop_mysqldump_create_system_user: yes
          gcoop_mysqldump_mysql_username: mysqlbackup
          gcoop_mysqldump_mysql_password: "{{ lookup('pass', 'mysql/' + gcoop_mysqldump_mysql_username) }}"
          gcoop_mysqldump_mysql_root_password: "{{ lookup('pass', 'mysql/root') }}"
          gcoop_mysqldump_system_password:     "{{ lookup('pass', 'users/' + gcoop_mysqldump_mysql_username) }}"

Cuando ya tienes un sistema y un usuario mysql:

    - hosts: localhost
      become: yes
      remote_user: debian

      roles:
        - role: gcoop-libre.mysqldump
          gcoop_mysqldump_mysql_username: mark
          gcoop_mysqldump_mysql_password: dadada
          gcoop_mysqldump_mysql_root_password: 123456

Licencia

Licencia Pública General de GNU, GPLv3.

Información del Autor

Este rol fue creado en 2016 por Osiris Alejandro Gomez, cooperativa de trabajo de gcoop Cooperativa de Software Libre.

Acerca del proyecto

MySQL Backup using mysqldump

Instalar
ansible-galaxy install gcoop-libre.mysqldump
Licencia
gpl-3.0
Descargas
2.2k