Sauvegarde d’un serveur dédié avec Hubic

Les serveurs d’entrée de gamme de chez OVH : Kimsufi ou VPS, sont fournis sans espace de sauvegarde. Pourtant, pouvoir sauvegarder un serveur reste quelque chose d’indispensable. Nous allons voir ici comment utiliser l’offre de stockage en ligne d’OVH Hubic afin de disposer d’un espace de backup de 25GO gratuit pour notre serveur dédié.

Ouverture d’un compte Hubic

On commence par se rendre sur le site de Hubic afin de créer un compte gratuit. Une fois cela fait, on se rend dans « Mon compte ».

hubic1

On sélectionne ensuite l’onglet « Développeurs » puis clique sur « Ajouter une application ».
Le nom de l’application n’a pas d’importance, pour le domaine de redirection on veillera par contre à bien indiquer : http://localhost/

hubic2

L’application une fois crée est disponible dans le listing, le bouton « Détails » donne le Client ID et le Client Secret qui seront utiles par la suite.

Installation de HubicFuse

L’application HubicFuse permet de monter le systheme de fichier de notre compte Hubic directement sur notre serveur. Concrètement, on a accès à notre espace de stockage Hubic comme si c’était un simple dossier de notre disque dur.

Installation des dépendances

$ sudo apt-get install gcc make curl libfuse-dev pkg-config libcurl4-openssl-dev libxml2-dev libssl-dev libjson-c-dev libmagic-dev

Téléchargement et compilation de HubicFuse

$ sudo git clone https://github.com/TurboGit/hubicfuse.git
$ cd hubicfuse
$ sudo ./configure
$ sudo make
$ sudo make install

Paramétrage et montage du système de fichier

$ sudo ./hubic_token
client_id (the app's id): api_hubic_Zs8CBdHrPogP5sKiHV
client_secret (the app's secret): 8qvJXPIAh3rEMtS6sVpiAd3nNhauaMgwUfc2M5Ie
redirect_uri (declared at app's creation): http://localhost/

For the scope -what you authorize your app to do-, enter characters as suggested
in parenthesis, or just hit return if you don't need the item authorized.
Get account usage (r): r
Get all published links in one call (r): r
Get OpenStack credentials, eg. access to your files (r): r
Send activation email (w): w
Add new/Get/Delete published link (wrd): wrd

user_login (the e-mail you used to subscribe): mail@domaine.com
user_pwd (your hubiC's main password):

Success!

# Here is what your app needs to connect to hubiC:
client_id=api_hubic_Zs8CBdHrPogP5sKiHV
client_secret=8qvJXPIAh3rEMtS6sVpiAd3nNhauaMgwUfc2M5Ie
refresh_token=CkSRrxzMU9T8pmpxgahmmGJVpQ06cFj0HCdnPz7GFhCRd

Apres avoir répondu aux quelques questions posées, et notamment avoir renseigné le client_id, client_secret et redirect_uri relevé lors de la création de notre application dans Hubic, on se retrouve avec les informations nécessaires pour établir la liaison. Ces informations, correspondant aux 3 dernières lignes, doivent être copiées dans le fichier .hubicfuse puis on pourra monter le système de fichier.

 $ vim /home/user/.hubicfuse    #on copie les 3 variables dans ce fichier
$ sudo mkdir /mnt/hubic
$ sudo hubicfuse /mnt/hubic -o noauto_cache,sync_read,allow_other

Les fichiers Hubic sont à présent disponibles sur le serveur, il suffira de se rendre dans /mnt/huboc/default pour les retrouver.

Installation de Backup-manager pour les sauvegardes automatiques

Comme souvent, l’installation de ce logiciel se fait très simplement, en une ligne de commande :

$ sudo apt-get install backup-manager

Une série de questions vous sera alors posée :

Archives location : Répertoire où seront stockés les fichiers
-> On renseigne /mnt/hubic/default/Backup (j’ai pour ma part pris la parti de créer un dossier Backup à la racine de mon Hubic, libre à vous de place la sauvegarde ou vous le souhaitez).
Directories to backup : Répertoire que l’on veux sauvegarder
-> Dans le cas d’un serveur web on pourra se contenter de /var/www/html mais vous pouvez rajouter d’autres répertoires comme votre /home par exemple.

A la fin de l’installation, le fichier de configuration de backup-manager sera renseigné avec les valeurs que l’on vient de rentrer. Vous pourrez donc les modifier par la suite.

Configuration de backup-manager

La configuration de Backup se fait par l’intermédiaire d’un fichier unique : /etc/backup-manager.conf

Beaucoup de paramètres peuvent être réglés mais nous n’allons regarder ici que les plus importants. Je vous invite donc à vous rendre sur la documentation Ubuntu de Backup-manager pour plus de détails.

$ sudo vi /etc/backup-manager.conf

# Dossier pour les sauvegardes rentrées à l'installation
export BM_REPOSITORY_ROOT="/mnt/hubic/default/Backup"

# Nombre de jours où les archives seront conservées sur le serveur
export BM_ARCHIVE_TTL="5"

# Je veux sauvegarder des fichiers plus des BDD je mets donc les 2 paramètres
export BM_ARCHIVE_METHOD="tarball mysql"

# Les fichiers sauvegardés seront transférés en tar.gz sur le serveur de backup
export BM_TARBALL_FILETYPE="tar.gz"

# Dossier à sauvegarder sur le serveur
export BM_TARBALL_DIRECTORIES="/var/www/html"

# Une option qui peut être utile si vous ne souhaitez pas sauvegarder certains
# dossier ou type de fichier (ici un dossier cache et les fichiers zip)
export BM_TARBALL_BLACKLIST="/var/www/html/cache/ *.zip"

# Bases de données à sauvegarder
# __ALL__ permet de tout sauvegarder mais ce n'est pas pratique pour la restauration
# On préférera lister le nom des bases à sauvegarder
export BM_MYSQL_DATABASES="WordpressBDD"

# Utilisateur Mysql ayant accès à toutes les bases
export BM_MYSQL_ADMINLOGIN="userBDD"

# Son mot de passe
export BM_MYSQL_ADMINPASS="passwordBDD"

# On désactive les autres méthodes de sauvegarde
export BM_UPLOAD_METHOD="none"
export BM_BURNING_METHOD="none"

La configuration de backup-manager est terminée, on peut dès à présent la tester en faisant notre première sauvegarde à la main.

$ sudo backup-manager

Automatisation de backup-manager

Notre sauvegarde fonctionne. Nous allons maintenant la rendre quotidienne en ajoutant une tâche cron.

$ sudo vi /etc/cron.daily/backup-manager
#!/bin/sh
/usr/sbin/backup-manager -c /etc/backup-manager.conf
$ sudo chmod 751 /etc/cron.daily/backup-manager

En bonus

Backup-manager donne la possibilité d’exécuter un petit script à la fin de la sauvegarde. Nous allons l’utiliser et créer un script qui nous enverra un mail lorsque la sauvegarde se termine :

$ sudo vi /etc/backup-manager-alert
#!/usr/bin/php
<?php
mail ('mail@domain.fr','Sauvegarde du serveur terminée', 'Le serveur a fini sa sauvegarde à '.date("H:i:s"));
?>
$ sudo chmod +x backup-manager-alert
$ sudo vi /etc/backup-manager.conf
# On indique l'adresse du script dans la configuration de backup-manager
export BM_POST_BACKUP_COMMAND="/etc/backup-manager-alert"

Vous trouverez sur le net des scripts bien plus complets et notamment ce script qui en plus de vous avertir se chargera de faire un contrôle sur vos sauvegardes.

Conclusion

La sauvegarde de base du serveur est maintenant en place. Vous pouvez aller plus loin en fonction de vos besoins en créant par exemple un second fichier de configuration qui sera appelé à intervalle différent par une autre tâche cron afin de sauvegarder votre /home toutes les semaines et votre /var/www/html tous les jours.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *