J’ai créé ce rôle Ansible Automysqlbackup qui est compatible Debian, Ubuntu et la branche Redhat pour déployer le fork d’Automysqlbackup remis aux normes actuelles. Ce rôle est disponible sur Ansible Galaxy et le projet est disponible sur github également.


Installation du rôle Ansible Automysqlbackup

Pour installer ce rôle de configuration sous Debian ou Ubuntu rien de plus simple :

ansible-galaxy install belgotux.automysqlbackup

Pré-requis

Il est préférable de créer un utilisateur spécifique pour automysqlbackup sur chaque serveur devant être sauvegardé. Pour cela les droits suivants sont nécessaire :

CREATE USER 'automysqlbackup'@'serverA' IDENTIFIED BY  '<your_password_secret>';
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER,USAGE ON *.* TO 'automysqlbackup'@'serverA' ;

Pour utiliser le rôle Ansible Automysqlbackup en local, les droits suivants :

CREATE USER 'automysqlbackup'@'localhost' IDENTIFIED BY  '<your_password_secret>';
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER,USAGE ON *.* TO 'automysqlbackup'@'localhost' ;

Configuration des variables Ansible

Nécessaires

Configuration du serveur :

  • automysqlbackup_repo répertoire où déposer le projet git (défaut /opt)
  • automysqlbackup_client binaire sql client à utiliser, soit mariadb-client ou mysql-client (défaut mariadb-client)
  • automysqlbackup_bin répertoire où copier le script (défaut /usr/local/bin)
  • automysqlbackup_conf répertoire des configurations (défaut /etc/automysqlbackup)
  • automysqlbackup_backupdir répertoire des sauvegardes

Configuration du client SQL

  • automysqlbackup_default_user utilisateur MySQL utilisé par défaut pour les serveurs (défaut automysqlbackup)
  • automysqlbackup_default_passwd mot de passe MySQL utilisé par défaut pour les serveurs
  • automysqlbackup_configurations liste des serveurs à sauvegarder. Prend la valeur de automysqlbackup_default_user, automysqlbackup_default_passwd, etc si user, passwd, etc n’est pas défini
automysqlbackup_configurations:
- name: server1
  server: xxx.yourdomain.tld
  port: 3306            # default use 3306
  user: test            # default use `automysqlbackup_default_user`
  passwd: testpwd       # default use `automysqlbackup_default_passwd`
  cron: "0 23 * * *"    # default use `automysqlbackup_default_cron`
  montly: 01            # default use `automysqlbackup_monthly`
  weekly: 5             # default use `automysqlbackup_weekly`
  daily_to_keep: 5      # default use `automysqlbackup_daily_to_keep`
  weekly_to_keep: 4     # default use `automysqlbackup_weekly_to_keep`
  monthly_to_keep: 3    # default use `automysqlbackup_monthly_to_keep`
- name: server2
  server: 192.168.x.x
  • automysqlbackup_default_db_exclude liste des bases de données exclues par défaut si la variable db_names n’est pas remplie sur la configuration serveur (défaut « ('information_schema' 'performance_schema' 'sys' )« )
  • automysqlbackup_default_table_exclude liste des tables à exclure au format db_name.table_name (défaut « ('mysql.event')« )
  • automysqlbackup_default_cron défini le cron par défaut à utiliser pour tous les serveurs, exemple "0 23 * * *"
  • automysqlbackup_create_user utilisateur système à créer par le rôle, true or false ? Crée automysqlbackup_default_cron_user (défaut true)

Facultatif

Server configuration

  • automysqlbackup_multicore utilisation de compression multicore pigz pour gzip ou pbzip2 pour bzip2. Peut être 'yes' ou 'no' (défaut 'no')
  • automysqlbackup_multicore_threads nombre de cpu à utiliser. Peut être un nombre ou auto pour laisser pigz ou pbzip2 choisir (défaut auto)
  • automysqlbackup_default_cron_user utilisateur à utiliser pour exécuter le cron (default automysqlbackup)
  • automysqlbackup_default_cron_group groupe à utiliser pour le dossier de backup (défaut users)
  • automysqlbackup_default_cron_path répertoire cron (défaut /etc/cron.d)

SQL client configuration

  • automysqlbackup_monthly quelle jour faire le backup mensuel ? (01 à 31) mettre 0 pour désactivé le backup mensuel (défaut 01)
  • automysqlbackup_weekly uelle jour faire le backup hebdomadaire ? (1 à 7 ou 1 est lundi) mettre 0 pour désactivé le backup hebdomadaire (défaut 5)
  • automysqlbackup_daily_to_keep combien de backups journaliers à garder (défaut 6)
  • automysqlbackup_weekly_to_keep combien de backups hebdomadaires à garder (défaut 28)
  • automysqlbackup_monthly_to_keep combien de backups mensuels à garder (défaut 180)
  • automysqlbackup_no_tablespaces le droits sql PROCESS est nécessaire depuis MySQL 5.7.31 et 8.0.21, l’option –no-tablespaces permet d’éviter d’avoir l’erreur. Peut être 'yes' ou 'no' (défaut 'yes')
  • automysqlbackup_dump_usessl Utiliser le chiffrement SSL avec mysqldump ? Peut être 'yes' ou 'no' (défaut 'no')
  • automysqlbackup_dump_single_transaction Lors de l’utilisation de cette option, il est important de noter que seules les tables InnoDB sont sauvegardées dans un état cohérent. Par exemple, toutes les tables MyISAM ou MEMORY sauvegardées lors de l’utilisation de cette option peuvent encore changer d’état. Peut être 'yes' ou 'no' (défaut 'no')
  • automysqlbackup_dump_dbstatus Statut de sauvegarde de table(s) dans un fichier texte. Cela est très utile lors de la restauration des sauvegardes, car cela donne une idée des changements survenus entre-temps. Peut être 'yes' ou 'no' (défaut 'no')
  • automysqlbackup_dump_create_database Inclure la commande CREATE DATABASE dans le backup. Peut être 'yes' ou 'no' (défaut 'no')
  • automysqlbackup_dump_use_separate_dirs séparer le répertoire de backup pour chaque base de données. Peut être 'yes' ou 'no' (défaut 'yes')
  • automysqlbackup_dump_compression choisir une compression du type gzip or bzip2 (défaut gzip)
  • automysqlbackup_dump_latest Stocker une copie supplémentaire (lien physique) de la dernière sauvegarde dans un emplacement standard afin qu’elle puisse être téléchargée par des scripts tiers. Peut être 'yes' ou 'no' (défaut 'yes')
  • automysqlbackup_dump_latest_clean_filenames Supprimer toutes les informations de date et d’heure des noms de fichiers dans le dossier le plus récent. (défaut yes)
  • automysqlbackup_mailcontent Que souhaitez-vous recevoir par courrier électronique : log (envoi les log), files (envoie les logs et fichiers sql en attaché), stdout (affiche les log dans la sortie standard utile pour l’exécution manuelle), quiet (envoie les log uniquement si une erreur apparait) (défaut log)
  • automysqlbackup_mail_address addresse mail du destinataire
  • automysqlbackup_dryrun Simulation de ce qui sera fait, ne fait rien en réalité. 0 mode inactif, 1 mode actif (défaut 0)
Summary
Ansible rôle Automysqlbackup
Article Name
Ansible rôle Automysqlbackup
Description
Role pour installer un fork à jour de Automysqlbakcup pour sauvegarder vos bases de données MySQL automatiquement
Author