alphanodes.backup
Rôle Ansible : Sauvegarde
Effectuez des sauvegardes quotidiennes, hebdomadaires et mensuelles pour les fichiers, les bases de données MySQL et les bases de données PostgreSQL sur les serveurs Debian et Ubuntu.
La rotation des sauvegardes est configurable, par exemple, vous pouvez utiliser le schéma Grand-père-père-fils.
Dépendances
Aucune
Installation
Ansible 2+
Utilisation de la CLI Ansible Galaxy :
ansible-galaxy install alphanodes.backup
Variables de Rôle
Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml
) :
backup_dir: /srv/backups
Répertoire pour les sauvegardes. Assurez-vous qu'il y a suffisamment d'espace disque sur cette partition. Utilisez des guillemets pour éviter les problèmes de conversion (par exemple avec to_nice_yaml).
backup_dir_mode: '0755'
Permissions du répertoire pour backup_dir
.
backup_dir_owner: root
Propriétaire du répertoire pour backup_dir
.
backup_dir_group: root
Groupe du répertoire pour backup_dir
.
backup_max_days: 7
Nombre de jours pour les ensembles de sauvegardes quotidiennes. Cela signifie que seuls les ensembles de backup_max_days
jours sont conservés. Les ensembles plus anciens sont supprimés automatiquement. La valeur doit être >= 1.
backup_max_weeks: 1
Nombre de semaines pour les ensembles de sauvegardes hebdomadaires. Cela signifie que seuls les ensembles de backup_max_weeks
semaines sont conservés. Les ensembles plus anciens sont supprimés automatiquement. La valeur doit être >= 1. La sauvegarde hebdomadaire est créée tous les premiers jours de la semaine. À ce jour, seule cette sauvegarde est créée (et pas de sauvegarde quotidienne - car cela serait un duplicata).
backup_max_months: 1
Nombre de mois pour les ensembles de sauvegardes mensuelles. Cela signifie que seuls les ensembles de backup_max_months
mois sont conservés. Les ensembles plus anciens sont supprimés automatiquement. La valeur doit être >= 1. La sauvegarde mensuelle est créée le premier jour de chaque mois. À ce jour, seule cette sauvegarde est créée (et pas de sauvegarde quotidienne ou hebdomadaire - car cela serait un duplicata).
backup_remote_host: ''
Nom d'hôte pour synchroniser les sauvegardes avec backup_remote_transfer
.
backup_remote_port: ''
Port pour synchroniser les sauvegardes avec backup_remote_transfer
.
backup_remote_dir: ''
Répertoire distant pour backup_remote_host
à utiliser avec backup_remote_transfer
.
backup_remote_excludes:
- '*.journal'
- '.nfs*'
- '*.tar'
Ces fichiers sont exclus de la synchronisation vers l'hôte distant. Cela est utilisé uniquement si backup_remote_transfer
est rsync
.
backup_rsync_options: '-avz --delete'
Options rsync pour backup_remote_transfer
avec rsync
.
backup_remote_transfer: rsync
Type de synchronisation. Les valeurs possibles sont : rsync ou lftp.
backup_remote_user: ''
Utilisateur pour la synchronisation à distance. Ceci n'est utilisé que si backup_remote_transfer
est lftp.
backup_remote_password: ''
Mot de passe pour la synchronisation à distance. Ceci n'est utilisé que si backup_remote_transfer
est lftp.
backup_with_borg: ''
Indique si backupborg doit être exécuté.
backup_db_dump_format: .sql.gz
Fichiers SQL non compressés (.sql) ainsi que bzip2 (.bz2), gzip (.gz) et xz. Actuellement, utilisé uniquement pour les dumps MySQL.
backup_with_mysql: false
Exécute une sauvegarde de dump MySQL (MariaDB). Toutes les bases de données sont conservées dans des fichiers séparés.
backup_with_postgresql: false
Exécute une sauvegarde de dump PostgreSQL. Toutes les bases de données sont stockées dans des fichiers séparés.
backup_with_mongodb: false
Exécute une sauvegarde de dump MongoDB. Toutes les bases de données sont conservées dans un seul fichier d'archive.
backup_mongodb_options: '--archive --gzip'
Options pour le dump de MongoDB.
backup_mysql_db_excludes:
- performance_schema
- information_schema
- sys
backup_mysql_single_transaction: true
# backup_mysqldump_options: '--extended-insert=true --opt --single-transaction'
Options MySQL personnalisées (sql.gz est toujours utilisé). Si défini, l'option native mysql_dump (sans Ansible) est utilisée. Par défaut, cela n'est pas défini.
backup_postgresqldump_options: "--no-owner -Fc"
Options de dump PostgreSQL.
backup_create_hashfiles: false
Créer des fichiers de hachage pour tous les ensembles de sauvegardes.
backup_files_unsafe_writes: false
Si backup_files_unsafe_writes
est vrai et que des fichiers modifiés sont trouvés lors de la création des fichiers tar, aucune erreur n'est signalée. Tar est exécuté avec les options supplémentaires --warning=no-file-removed --warning=no-file-changed --warning=no-file-ignored
. Cette option peut être écrasée pour chaque ensemble avec unsafe_writes
.
backup_sets: []
Ensembles de sauvegardes pour la sauvegarde de fichiers. name
est utilisé comme nom de fichier de sauvegarde. src
est le répertoire des fichiers à sauvegarder. unsafe_writes
écrase backup_files_unsafe_writes
. excludes
est une liste qui peut être utilisée pour exclure des fichiers ou des répertoires.
backup_one_per_day_limit: true
Créer uniquement un ensemble de sauvegarde par jour. Les ensembles de sauvegarde existants du même jour seront supprimés.
#sync_master: anything
Si sync_master est défini, la sauvegarde sera ignorée. Vous pouvez l'utiliser pour les environnements de réplication.
backup_skip_sync_clients: true
Si sync_master est défini, cela signifie que c'est un sync_client.
backup_pre_commands: []
Liste des commandes à exécuter avant le dump de sauvegarde.
backup_post_commands: []
Liste des commandes à exécuter après que la sauvegarde a été créé.
Exemple de Playbook
- hosts: nom-du-serveur
vars:
backup_sets:
- name: etc
src: /etc
roles:
- alphanodes.backup
Exemple étendu de Playbook
- hosts: nom-du-serveur
vars:
backup_max_days: 14
backup_max_weeks: 4
backup_max_months: 6
backup_with_postgresql: true
backup_dir_mode: '0770'
backup_dir_group: postgres
backup_sets:
- name: etc
src: /etc
- name: jenkins
src: /var/lib/jenkins
unsafe_writes: true
excludes:
- builds
- workspace
roles:
- alphanodes.backup
Licence
GPL Version 3
Informations sur l'auteur
Ce rôle a été créé en 2018 par AlphaNodes.
Run daily backups for files, MySQL databases and PostgreSQL databases
ansible-galaxy install alphanodes.backup