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éfautmariadb-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éfautautomysqlbackup
)automysqlbackup_default_passwd
mot de passe MySQL utilisé par défaut pour les serveursautomysqlbackup_configurations
liste des serveurs à sauvegarder. Prend la valeur deautomysqlbackup_default_user
,automysqlbackup_default_passwd
, etc siuser
,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 variabledb_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
orfalse
? Créeautomysqlbackup_default_cron_user
(défauttrue
)
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 ouauto
pour laisser pigz ou pbzip2 choisir (défautauto
)automysqlbackup_default_cron_user
utilisateur à utiliser pour exécuter le cron (defaultautomysqlbackup
)automysqlbackup_default_cron_group
groupe à utiliser pour le dossier de backup (défautusers
)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éfaut01
)automysqlbackup_weekly
uelle jour faire le backup hebdomadaire ? (1 à 7 ou 1 est lundi) mettre 0 pour désactivé le backup hebdomadaire (défaut5
)automysqlbackup_daily_to_keep
combien de backups journaliers à garder (défaut6
)automysqlbackup_weekly_to_keep
combien de backups hebdomadaires à garder (défaut28
)automysqlbackup_monthly_to_keep
combien de backups mensuels à garder (défaut180
)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 typegzip
orbzip2
(défautgzip
)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éfautlog
)automysqlbackup_mail_address
addresse mail du destinataireautomysqlbackup_dryrun
Simulation de ce qui sera fait, ne fait rien en réalité.0
mode inactif,1
mode actif (défaut0
)
Laisser un commentaire