gantsign.backup

Rôle Ansible : Sauvegarde

Tests Ansible Galaxy Licence

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)

À propos du projet

Role for backing up and restoring files and directories.

Installer
ansible-galaxy install gantsign.backup
Licence
mit
Téléchargements
2.7k
Propriétaire