gantsign.backup
Rôle Ansible : Sauvegarde
Rôle qui permet de sauvegarder et restaurer des fichiers et des répertoires. Utilise rsync mais est conçu pour être utilisé avec un disque de sauvegarde monté localement.
Lors de la mise en service, ce rôle restaurera tous les fichiers et répertoires précédemment sauvegardés. Une fois le système redémarré, le système d'exploitation effectuera des sauvegardes incrémentielles toutes les 5 minutes et lors de l'arrêt.
La sauvegarde est un simple miroir du répertoire source, les versions antérieures des fichiers sont supprimées. L'objectif principal est de conserver les fichiers entre les reconstructions de votre machine virtuelle de développement locale. Si vous ne pouvez pas vous permettre de perdre ou de remplacer vos fichiers, utilisez plutôt une solution de sauvegarde à distance avec versionnage.
Ce rôle est principalement destiné à sauvegarder et restaurer le contenu du répertoire personnel d'un utilisateur.
Exigences
Ansible >= 2.9
Distribution Linux
Famille Debian
Ubuntu
- Bionic (18.04)
- Focal (20.04)
Remarque : d'autres versions peuvent fonctionner mais n'ont pas été testées.
Variables du Rôle
Les variables suivantes changeront le comportement de ce rôle :
# La fréquence à laquelle effectuer la sauvegarde
backup_frequency_minutes: 5
# Utilisateur propriétaire des fichiers à sauvegarder/restaurer
backup_user: # Requis
# Le répertoire source contenant les fichiers à sauvegarder (doit se terminer par un /)
backup_src: # Requis
# Le répertoire de destination pour sauvegarder les fichiers (doit se terminer par un /)
backup_dest: # Requis
# Le filtre rsync des fichiers/répertoires à inclure/exclure
backup_filter: |
!
# Inclure tout
+ /*
# Répertoire pour les scripts de sauvegarde
backup_script_dir: '~/.backup'
# Le nom à utiliser pour cron
backup_cron_name: backup
# Le nom à utiliser pour le service systemd
backup_service_name: backup
Exemples de Playbooks
Voici un exemple simple de playbook :
- hosts: serveurs
roles:
- role: gantsign.backup
backup_user: exemple_utilisateur
backup_src: /home/exemple_utilisateur/
backup_dest: /mnt/sauvegarde/exemple_utilisateur/
backup_filter: |
# Réinitialiser le filtre
!
# Inclure le fichier/répertoire
+ /inclure_moi
# Inclure le sous-répertoire (uniquement nécessaire si vous allez exclure d'autres sous-répertoires)
+ /inclure_moi/moi_aussi
# Exclure tout sauf moi_aussi
- /inclure_moi/*
# Exclure par nom de fichier/répertoire
- tmp
# Exclure tout le reste
- /*
Voici un exemple de playbook de la vie réelle :
- hosts: serveurs
roles:
- role: gantsign.backup
backup_user: vagrant
backup_src: /home/vagrant/
backup_dest: /var/persistent/home/vagrant/
backup_filter: |
!
+ /.atom
+ /.atom
+ /.atom/config.cson
- /.atom/*
+ /.bash_history
+ /.config
+ /.config/Code
+ /.config/Code/User
+ /.config/Code/User/settings.json
- /.config/Code/User/*
- /.config/Code/*
- /.config/*
+ /.gitconfig
+ /.gnupg
+ /.m2
- /.m2/repository
- /.m2/wrapper
+ /.ssh
- /.ssh/authorized_keys
+ /workspace
+ /.zsh_history
- target/*
- build/*
- node_modules
- /*
Autres Rôles de GantSign
Vous pouvez trouver d'autres rôles de GantSign sur Ansible Galaxy.
Développement & Tests
Ce projet utilise Molecule pour aider au développement et aux tests ; le rôle est testé unitairement avec Testinfra et pytest.
Pour développer ou tester, vous devez avoir installé ce qui suit :
Comme l'installation de tout cela peut être délicate, ce projet inclut Molecule Wrapper. Molecule Wrapper est un script shell qui installe Molecule et ses dépendances (sauf Linux) et exécute ensuite Molecule avec la commande que vous lui passez.
Pour tester ce rôle avec Molecule Wrapper, exécutez la commande suivante depuis la racine du projet :
./moleculew test
Remarque : certaines des dépendances nécessitent des autorisations sudo
pour être installées.
Licence
MIT
Informations sur l'Auteur
John Freeman
GantSign Ltd. Numéro de société 06109112 (enregistré en Angleterre)
Role for backing up and restoring files and directories.
ansible-galaxy install gantsign.backup