Il y a quelques temps, je vous expliquais comment mettre en place un système de sauvegardes chiffrées avec Duplicity. Je vous propose de voir aujourd’hui comment adapter ce process pour utiliser HubiC, car l’un des soucis majeurs avec les sauvegardes est de disposer d’un espace distant de stockage suffisamment volumineux. Et autant le dire HubiC est un très bon candidat.
La solution HubiC d’OVH est une solution de cloud personnel très compétitive sur le plan tarifaire. L’offre démarre avec 25 Go gratuits, 100 Go de stockage pour 1€ par mois et 10 To de stockage pour 10 € par mois. Autant dire que vous allez pouvoir faire autant de sauvegardes que vous le souhaitez.
Le problème, par contre, c’est que cette solution de stockage personnel, que l’on souhaite utiliser comme destination de stockage pour notre backup incrémental, ne propose pas d’interface de connection FTP. Fût un temps où le protocole Webdav était actif (mais pas supporté officiellement) … mais aujourd’hui, HubiC repose sur OpenStack / Swift.
Certains bricoleurs ont donc cherché comment utiliser l’API Swift, qui est bien documentée, étant notamment utilisée par le service d’hébergement de RackSpace, Cloud Files. Le hic, c’est que le protocole d’authentification utilisé par HubiC n’est pas tout à fait standard et que la phase d’authentification n’est pas identique à celle de Swift.
J’ai testé pas mal de solutions, l’une permettant de monter votre dossier HubiC comme un point de partage réseau, l’autre permettant de créer une sorte de proxy accessible et FTP et faisant l’interface avec le container OpenStack, ou bien encore un client Swift.
Et après pas mal de tentatives pas complètement satisfaisantes, j’ai trouvé sur un blog quelqu’un de suffisamment astucieux pour avoir modifié la librairie python-cloudfiles
, utilisée par Duplicity pour le support du service CloudFiles pour supporter HubiC. J’ai repris de mon côté son travail pour supprimer un message d’alerte. Voici en détails comment la tout mettre en place.
Etape 1 : patcher la lib python-cloudfiles
pour supporter l’authentification Hubic
Dans votre terminal :
apt-get install python-setuptools git cd /usr/src git clone https://github.com/yvangodard/python-cloudfiles-hubic.git cd python-cloudfiles-hubic python setup.py install rm -R /usr/src/python-cloudfiles-hubic
Etape 2 : enregistrer une application pour utiliser l’API
Rendez-vous sur votre compte HubiC, et dans les paramètres, choisissez “Ajouter une application” puis entrez les paramètres suivants :
- Nom :
un_nom_de_votre_choix
- Domaine de redirection :
http://localhost/
Et récupérez le client_id
et le client_secret
:
Etape 3 : tester Duplicity avec le support de HubiC
Si ce n’est pas fait, c’est le moment pour installer Duplicity :
apt-get install duplicity
Et vous pouvez ensuite faire quelques tests à l’aide des commandes suivantes. Pensez à remplacer les variables suivantes :
CLOUDFILES_USERNAME
contiendra votre adresse de connexion associée à votre compte HubiCCLOUDFILES_APIKEY
contiendra le mot de passe de votre compte HubiCCLOUDFILES_AUTHURL
contiendra lesclient_id
et leclient_secret
récupérés à l’étape 2, sous la forme :CLOUDFILES_AUTHURL="hubic|client_id|client_secret|http://localhost/"
# Désactiver le bash_history et supprimer les anciennes variables unset HISTFILE unset CLOUDFILES_USERNAME unset CLOUDFILES_APIKEY unset CLOUDFILES_AUTHURL # Entrons les variables export CLOUDFILES_USERNAME=monloginhubic@monfai.fr export CLOUDFILES_APIKEY=MotDePasseDeMonCompteHubic export CLOUDFILES_AUTHURL="hubic|api_hubic_XXXX|YYYYY|http://localhost/" # Lançons une première sauvegarde de test duplicity /root cf+http://default # Observons l'état duplicity collection-status cf+http://default # Listons les fichiers distants duplicity list-current-files cf+http://default # Testons la restauration d'un fichier duplicity --file-to-restore /etc/ cf+http://default /tmp/bash_alias_recup
Pour réaliser le backup, il vous sera demandé d’entrer une passphrase (utilisée pour le chiffrement). Vous pouvez en générer une ici en créant un mot de passe de 50 caractères par exemple.
Pour vérifier que tout fonctionne, vérifiez en ligne, sur votre espace HubiC que les volumes de backup ont été uploadés. Vous devriez trouver là tout une liste de fichier commençant pas “duplicity-******”. Sélectionnez-les tous, supprimez les.
Ensuite nous allons faire un peu de ménage en local :
duplicity cleanup cf+http://default
Comme l’explique David Mercereau sur son blog, il ne e semble pas possible d’écrire dans un sous-répertoire. Si vous souhaitez isoler les fichiers de backup, il est possible d’écrire dans un autre “container” sur HubiC (autre que “default”), par exemple en faisant votre backup ainsi :
duplicity /root cf+http://backup
Vous ne verrez pas en ligne les fichiers sans modifier manuellement l’URL ainsi https://hubic.com/home/browser/#backup/ (n’oubliez pas ‘/’ à la fin) :
Etape 4 : mettre en place les scripts de backup de Duplicity
Comme je l’avais indiqué dans mon premier billet sur Duplicity, nous allons installer ces script dans le répertoire /usr/local/sbin
:
# On récupère les scripts wget -O /usr/local/sbin/master-backup-cleanup.sh --no-check-certificate https://raw.github.com/yvangodard/Scripts-Utiles/master/duplicityscripts/scripts/master-backup-cleanup.sh wget -O /usr/local/sbin/master-backup-listing.sh --no-check-certificate https://raw.github.com/yvangodard/Scripts-Utiles/master/duplicityscripts/scripts/master-backup-listing.sh wget -O /usr/local/sbin/master-backup-restore.sh --no-check-certificate https://raw.github.com/yvangodard/Scripts-Utiles/master/duplicityscripts/scripts/master-backup-restore.sh wget -O /usr/local/sbin/master-backup-status.sh --no-check-certificate https://raw.github.com/yvangodard/Scripts-Utiles/master/duplicityscripts/scripts/master-backup-status.sh wget -O /usr/local/sbin/master-backup-verify.sh --no-check-certificate https://raw.github.com/yvangodard/Scripts-Utiles/master/duplicityscripts/scripts/master-backup-verify.sh wget -O /usr/local/sbin/master-backup.sh --no-check-certificate https://raw.github.com/yvangodard/Scripts-Utiles/master/duplicityscripts/scripts/master-backup.sh # On les rends exécutables sudo chmod +x /usr/local/sbin/master-backup*
Je vous invite ensuite à vous reporter à mon premier billet sur Duplicity pour voir comment utiliser ces scripts. Il vous faudra juste éditer le fichier de configuration (par exemple /etc/master-backup.conf
) et y entrer les variables suivantes :
URL=cf+http://default
(ou tout autre containter, comme indiqué à l’étape 3)HUBICUSER=
votre adresse de connexion associée à votre compte HubiCHUBICPASSWORD=
votre mot de passe de connexion associée à votre compte HubiCHUBICAPPID=
client_id récupéré à l’étape 2HUBICAPPSECRET=
client_secret récupéré à l’étape 2HUBICAPPURLREDIRECT=http://localhost/
Amusez-vous bien maintenant !