gcoop-libre.mysqldump
Rôle Ansible : gcoop-libre.mysqldump
Ce rôle configure l'accès à MySQL/MariaDB/Percona sur localhost et configure un fichier cron pour les sauvegardes utilisant la commande mysqldump
.
Exigences
- python-mysqldb
- MySQL/MariaDB/Percona
Optionnel
Le Plugin de recherche Pass d'Ansible vous permet d'utiliser un store de mots de passe compatible avec pass pour générer des mots de passe chiffrés. Il imite le comportement de la recherche de mots de passe, mais utilise pass
au lieu de fichiers en texte clair pour stocker les mots de passe.
Variables du Rôle
Variables disponibles avec des valeurs par défaut (voir defaults/main.yml
).
gcoop_mysqldump_cron_entries:
- name: mensuel
minute: 0
heure: 2
jour: '*/7'
format: '%b'
base_de_donnees: "{{ gcoop_mysqldump_database }}"
- name: quotidien
minute: 0
heure: 1
jour: '*'
format: '%a'
base_de_donnees: "{{ gcoop_mysqldump_database }}"
- name: horaire
minute: 30
heure: '*'
jour: '*'
format: ''
base_de_donnees: 'mysql'
Le gcoop_mysqldump_cron_entries
par défaut génère les fichiers suivants dans le répertoire /backup/sql
:
Un fichier par jour de la semaine :
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 fichier par mois (mis à jour toutes les 7 jours) :
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 fichier mis à jour avec la dernière sauvegarde (mis à jour toutes les heures) :
hostname-dbname1.sql.gz
hostname-dbname2.sql.gz
Syslog
Par défaut, le rôle enregistre les tâches cron dans syslog :
root@dbserver:/backup/sql# tail -f /var/log/syslog
Jun 25 02:30:02 dbserver mysqldump: Début : 2016-06-25 02:30 Fin : 2016-06-25 02:30 Durée : 00:00:01 Fichier : c2340030bd3ec4c5b890a7e7ae80fd18 /backup/sql/dbserver-mysql.sql.gz
Jun 25 02:30:02 dbserver mysqldump: Début : 2016-06-25 02:30 Fin : 2016-06-25 02:30 Durée : 00:00:00 Fichier : 5b5f36528df547e08f42db615e22ded6 /backup/sql/dbserver-information_schema-jun.sql.gz
Jun 25 02:30:02 dbserver mysqldump: Début : 2016-06-25 02:30 Fin : 2016-06-25 02:30 Durée : 00:00:00 Fichier : 6d952bdd7edf0e5663bbd487dbcaf46c /backup/sql/dbserver-mysql-jun.sql.gz
Dépendances
Aucune.
Exemple de Playbook
Si vous souhaitez créer un nouvel utilisateur système et MySQL en utilisant le plugin de recherche pass :
- 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) }}"
Lorsque vous avez déjà un utilisateur système et 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
Licence
Licence Publique Générale GNU, GPLv3.
Informations sur l'Auteur
Ce rôle a été créé en 2016 par Osiris Alejandro Gomez, coopérative de travail de gcoop Cooperativa de Software Libre.
ansible-galaxy install gcoop-libre.mysqldump