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.

À propos du projet

MySQL Backup using mysqldump

Installer
ansible-galaxy install gcoop-libre.mysqldump
Licence
gpl-3.0
Téléchargements
2.2k