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.
ansible-galaxy install gcoop-libre.mysqldump