Configuration BackupPC
Cette page décrit une procédure de configuration simple de backupPC, où les machines à sauvegarder le sont par rsync+ssh. Le serveur est sous debian, et les machines à sauvegarder sous GNU/Linux, mais à quelques adjustement près, les informations données peuvent s'appliquer à tous type de système.
Installation de backupPC sur le serveur de sauvegarde
Installation et configuration de base de backuppc
On commence à installer backupPC sur le serveur. Sous debian, il s'agit d'installer le paquet backuppc:
aptitude install backuppc
Lors de l'installation du paquet debian, le système propose la configuration de l'accès à l'interface dans le serveur web installé, et crée un utilisateur backuppc avec un mot de passe aléatoire qui est fourni et que vous devez notez. Le mot de passe peut ensuite être changé à l'aide de la commande:
htpasswd /etc/backuppc/htpasswd backuppc
Si on souhaite effectuer des sauvegardes via rsync, comme c'est notre cas, il faut également installer le paquet libfile-rsyncp-perl qui fournit le module perl File::RsyncP permettant l'utilisation de rsync. Si votre système n'installe pas systématiquement les paquets recommandés, vous devrez le faire manuellement:
aptitude install libfile-rsyncp-perl
Pour avoir l'interface en français, modifiez la directive Language dans /etc/backuppc/config.pl pour obtenir ceci (je n'ai pas trouvé comment le faire dans l'interface web, bien que ça doit être possible):
$Conf{Language} = 'fr';
Recharger ensuite la configuration:
/etc/init.d/backuppc reload
Création d'une configuration par défaut via l'interface web
Si les sauvegardes de toutes les machines ou presque sont effectuées de la même façon, il est possible (et recommandé) de définir la configuration qui sera utilisée par défaut pour les sauvegardes.
Pour cela, accéder à l'interface web via l'adresse du type http://machine.domaine.tld/backuppc (machine.domaine.tld était un nom de votre serveur) en vous authentifiant via l'utilisateur backuppc créé lors de l'installation du paquet debian.
Une fois dans l'interface web:
- dans le menu « Serveur » du cadre de gauche, cliquer sur le lien « Modifier la configuration »,
- dans la page qui s'affiche, cliquer sur le lien « Xfer »
- choisir la méthode de transfert (« rsync » dans notre cas)
- définir les répertoires à exclure de la sauvegarde. Pour cela, dans la section « Inclure/Exclure », modifier la définition de BackupFilesExclude en ajoutant une clé « * » (cette clef correspond à des partages lors de sauvegardes par samba, et n'est pas utilisée avec rsync, mais semble incoutournable dans l'interface), puis dans cette clef, utiliser le bouton « Ajouter » et saisir les répertoires suivants (l'utilisation de /rep/* au lieu de /rep permet de conserver un répertoire /rep vide dans la sauvegarde, ce qui peut être utile en cas de restauration):
- /dev/*
- /proc/*
- /sys/*
- /tmp/*
- /mnt/*
- /media/*
Ne pas oublier de sauvegarder les modifications en cliquant sur le bouton Sauvegarder devenu rouge en haut de la page.
Création d'une clef ssh dédiée
Comme nous voulons effectuer les sauvegardes via rsync+ssh, nous créons une clef ssh dédiée à BackupPC qui permettra de s'authentifier sur les machines à sauvegarder. Cette clef est assez sensible puisqu'elle donne un accès root à plusieurs machines, et n'est pas protégée par une passphrase (bien que l'accès distant soit limité en lecture seule -- voir les instructions de configuration d'une machine à sauvegarder --, et que les données déjà sauvegardées soit de toutes façons accessibles sur le serveur). N'utilisez cette méthode que si vous êtes suffisamment sûr de votre serveur, et que le risque vous paraît acceptable.
Sous debian, Backuppc utilise l'utilisateur système « backuppc ». La clef utilisée par défaut sera donc conservée dans le fichier ~backuppc/.ssh/id_rsa (ce qui pourrait être changé par des instructions dans un fichier ~backuppc/.ssh/config). Le répertoire personnel de l'utilisateur backuppc, ~backuppc équivaut sous debian à /var/lib/backuppc. Utiliser la commande echo ~backuppc pour trouver le répertoire utilisé votre système. Utilisez les commandes suivantes pour générer la clef SSH:
mkdir -m 700 /var/lib/backuppc/.ssh ssh-keygen -N "" -f /var/lib/backuppc/.ssh/id_rsa chown -R backuppc: /var/lib/backuppc/.ssh
Configuration d'une nouvelle sauvegarde
Si vous souhaitez configurer la sauvegarde d'une nouvelle machine, suivez les étapes ci-dessous.
Autoriser la connexion ssh sur la machine à sauvegarder
Sur la machine à sauvegarder, créez si nécessaire le répertoire /root/.ssh, et ajouter la partie publique de la clef de backuppc dans le fichier authorized_keys, avec un maximum de restrictions (on force ici l'utilisation de la partie serveur de rsync pour limiter à un accès en lecture seule).
mkdir -m 700 /root/.ssh cat >> /root/.ssh/authorized_keys <<<"no-port-forwarding,no-x11-forwarding,no-agent-forwarding,no-pty,command="nice -n 19 rsync --server --sender ${SSH_ORIGINAL_COMMAND#*rsync}" ssh-rsa AAAAB...yp7QmN backuppc@serveur"
(les caractères de la clef publique ont été supprimés par souci de brièveté).
Si vous ne souhaitez pas autoriser les accès directs en root, il est possible de varier la configuration pour appeler rsync en sudo, comme indiqué dans la FAQ de BackupPC.
Configurer les nouvelles machines via l'interface de backuppc
Se connecter à l'interface web de BackupPC, accessible à une adresse du type http://machine.domaine.tld/backuppc:
- dans le menu « Serveur » sur le cadre de gauche de la page web, cliquer sur « Mofifier les machines »
- sur la page qui s'affiche, cliquer sur le bouton « Ajouter »
- renseigner la case « host ». La case « user » définit l'utilisateur système qui recevra les messages d'alerte par email en cas d'erreur de sauvegarde. On utilisera généralement l'utilisateur « backuppc » dont on fera pointer l'alias vers une adresse email dans /etc/aliases (par défaut le mail est renvoyé vers root, ce qui peut suffire).
- recharger la page d'admin pour mettre à jour le cadre de gauche, puis choisir dans le menu déroulant « Hôtes » de ce cadre la machine nouvellement ajoutée.
- si vous utilisez pour cette machine la configuration générale, il n'y a rien à changer dans la configuration de cette machine. Sinon, vous pouvez lui définir une configuration particulière en cliquant sur « Modifier la configuration » dans le menu du cadre de gauche.
Effectuer une première connexion SSH manuellement
Important: lors de la première connexion ssh depuis le serveur, il faut que l'utilisateur backuppc accepte l'empreinte de la clef de la machine à sauvegarder. On doit donc effectuer une première connexion SSH manuellement pour accepter cette empreinte (sinon les sauvegardes ne fonctionneront pas). La commande suivante devrait suffire (où machineZ est la machine à sauvegarder):
sudo -u backuppc ssh root@machineZ
Réponsez « yes » lorsque ssh demandera si vous voulez continuer à vous connecter. Si vous avez forcé l'utilisation de la commande rsync via la clef déposée sur la machine à sauvegarder, cette commande affichera alors l'aide de rsync, puisque nous n'avons pas fourni d'options.
Lancer une première sauvegarde
Lancer éventuellement une sauvegarde complète pour tester le fonctionnement de backuppc en cliquant sur le bouton « Démarrer la sauvegarde complète » et en confirmant. La page de la machine dans backuppc indiquera si la sauvegarde s'est bien déroulée. Si ce n'est pas le cas, suivez le lien « Bilan des derniers transferts échoués (erreurs seulement) » sur le cadre de gauche pour voir les erreurs. Réparez-les et retentez une sauvegarde complète (les logs donnent la ligne de commande utilisée par backuppc, ce qui est pratique pour l'essayer manuellement en cas d'erreur).
Informations complémentaires
Si vous avez besoin d'aller plus loin avec BackupPC, que vous voulez le configurer directement via les fichiers de configuration, ou rechercher une erreur, voici quelques indications supplémentaires qui pourront vous aider:
Sur le serveur, la configuration de backuppc est principalement conservée dans les fichiers suivants:
- /etc/backuppc/config.pl : c'est la configuration générale utilisée par défaut pour toutes les machines
- /etc/backuppc/serveur1.pl : dans ce fichier sont redéfinis certains éléments de configuration pour la machine « serveur1 ». Les autres éléments de configuration sont lus dans config.pl.
- /etc/backuppc/hosts : liste des machines configurées
- /var/lib/backuppc/pc/ : contient un répertoire par machine configurée où sont conservés les fichiers des logs de sauvegarde, ainsi que les sauvegardes elles-mêmes (dans un sous-répertoire, et sous un format spécial).
- le fichier /var/lib/backuppc/log/LOG peut également être utile en cas d'erreurs (en cas de partition pleine, par exemple, la sauvegarde d'une machine indique seulement « Backup aborted (Child exited prematurely) »)
Voir aussi
- le site officiel de BackupPC
- quelques informations sur BackupPC sur notre page dédiée aux solution de sauvegardes incrémentielles (informations sont en partie redondantes).