tschifftner.duplicity

Rôle Ansible : Installer et configurer duplicity

Statut de construction

Installe duplicity à partir de la source et gère les tâches de sauvegarde sur les serveurs Linux Debian/Ubuntu.

Exigences

ansible 2.0+

Dépendances

Aucune.

Installation

$ ansible-galaxy install tschifftner.duplicity

Exemple de Playbook

Les variables disponibles sont listées ci-dessous, avec des valeurs par défaut (voir defaults/main.yml) :

    - hosts: serveurs_web
      vars:
        # duplicity
        duplicity_known_hosts:
          - host: 'example.org'
            key: 'example.org ssh-rsa AAAAB3NzaC...+PwAK+MPw=='
            state: present
    
        duplicity_config_vars:
          FTP_SERVER: 'sftp://[email protected]/my/folder/'
          FTP_PASSWORD: '*******'
          DEFAULT_PARAMS: '--verbosity info --exclude-device-files --exclude-other-filesystems --exclude-if-present .duplicity-ignore'
    
        duplicity_cronjobs:
          - name: 'Nettoyage de plus de 2 mois'
            user: root
            group: root
            source: /etc/duplicity/duplicity.conf
            hour: 4
            minute: 10
            command: >
              duplicity remove-older-than 2M --force --extra-clean $FTP_SERVER;
              duplicity cleanup --force $FTP_SERVER
    
          - name: 'Sauvegarde de /var/www'
            user: root
            group: root
            hour: 5
            minute: 21
            source: /etc/duplicity/duplicity.conf
            command: duplicity $DEFAULT_PARAMS --include /var/www --full-if-older-than 1M --exclude '**' / $FTP_SERVER

      roles:
             - { role: tschifftner.duplicity }

Il est recommandé de mettre toutes les variables dans un fichier externe.

    - hosts: serveurs_web
      vars_files:
        - duplicity-settings.yml
    
      roles:
         - { role: tschifftner.duplicity }

Astuces

  • Utilisez ssh-keyscan -t rsa example.org pour obtenir la clé ssh pour un serveur (utilisé dans la variable duplicity_known_hosts)
  • Il est possible d'écrire des tâches cron sur plusieurs lignes. Mais cela peut provoquer des échecs d'idempotence ! Par exemple :
 command: >
   duplicity remove-older-than 2M --force --extra-clean $FTP_SERVER;
   duplicity cleanup --force $FTP_SERVER

Cela entraînera toujours un changement !

Variables Duplicity

duplicity_config_vars:
  SERVER: 'ftp://[email protected]/backups/'
  PASSPHRASE: 'VotrePhraseDePasseSecret'
  FTP_PASSWORD: '*******'
  PARAMS: '--verbosity info --exclude-device-files --exclude-other-filesystems --exclude-if-present .duplicity-ignore --exclude-filelist /etc/duplicity/exclude.list'
  INCLUDES: '/root /home /var/www /var/backup'

Chiffrement GPG

Le chiffrement GPG n'est pas pris en charge par ce rôle. Vous devez l'installer manuellement.

Générer une paire de clés GPG

Pour générer des clés gpg, utilisez le code suivant :

gpg --batch --gen-key <<EOF
%echo Génération d'une clé GPG
Key-Type: RSA
Key-Length: 4096
Subkey-Type: RSA
Subkey-Length: 4096
Name-Real: Sauvegarde Duplicity
Name-Comment: Utilisée pour le chiffrement des sauvegardes
Name-Email: duplicity@localhost
Expire-Date: 0
Passphrase: CelaDevraitÊtreVotrePhraseDePasseUniquePersonnelle
%commit
%echo Fait
EOF

Exporter la clé publique

gpg --output FB37DF3B.public.asc --armor --export FB37DF3B

Exporter la confiance du propriétaire

gpg --export-ownertrust > ownertrust.txt

Exporter la clé privée

gpg --output FB37DF3B.private.asc --armor --export-secret-key FB37DF3B

Hôtes connus

Pour marquer des hôtes comme hôtes connus

duplicity_known_hosts:
  - host: 'ftp.example.com'
    key: 'ftp.example.com ssh-rsa AAAAB3NzaC1yc2[...]+MPw=='
    state: 'present'

Si vous êtes sûr que votre système le prend en charge, il est possible d'utiliser des clés ecdsa et ed25519.

ssh-keyscan -t ecdsa ftp.example.com
ssh-keyscan -t ed25519 ftp.example.com

Duptools

Duptools est un script d'aide pour gérer les sauvegardes. Il est installé par défaut mais peut être désactivé par duplicity_install_duptools: false

Exécuter duptools

Il suffit de taper duptools dans la ligne de commande pour obtenir les options disponibles :

    duptools - gérer la sauvegarde duplicity

    UTILISATION :

    duptools backup
    duptools list
    duptools status
    duptools restore file [time] dest
    duptools remove [time]

    [time]
    a) maintenant
    b) 2002-01-25T07:00:00+02:00
    c) D=Jours, W=Semaines, M=Mois, Y=Années, h=heures, m=minutes, s=secondes

Systèmes d'exploitation pris en charge

  • Debian 9 (Stretch)
  • Debian 8 (Jessie)
  • Ubuntu 18.04 (Bionic Beaver)
  • Ubuntu 16.04 (Xenial Xerus)

Version requise d'ansible

Ansible 2.5+

Licence

Licence MIT

Informations sur l'auteur

À FAIRE

  • Corriger la réinstallation et l'installation d'une autre version, maintenant le fichier /usr/local/bin/duplicity n'est pas réécrit et ne supprime pas pip uninstal duplicity
À propos du projet

Installs duplicity from source and handles backup tasks on Debian/Ubuntu linux servers.

Installer
ansible-galaxy install tschifftner.duplicity
Licence
mit
Téléchargements
90
Propriétaire
Kubernetes Software Architekt, Magento Certified Developer und Full-Stack Entwickler