tschifftner.duplicity
Rôle Ansible : Installer et configurer duplicity
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
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
Installs duplicity from source and handles backup tasks on Debian/Ubuntu linux servers.
ansible-galaxy install tschifftner.duplicity