Différences entre les pages « Samba et autofs » et « Configuration BackupPC »

De Cliss XXI
(Différence entre les pages)
Sauter à la navigation Sauter à la recherche
 
imported>XavierBéguin
(Création de la page)
 
Ligne 1 : Ligne 1 :
== modification Lenny/Squeeze ==
+
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.
  
Dans la version 4 (Lenny), c'est un script (/etc/init.d/autofs) qui parse /etc/auto.master et qui lance automount avec les bon parametres,
+
== Installation de backupPC sur le serveur de sauvegarde ==
dans la version 5 (Squeeze) c'est directement automount qui lit /etc/auto.master.
 
  
Le systeme fonctionne presque en squeeze (avec smbclient) mais donne un comportement bizarre: le repertoire vise (mettons /mnt/cifs/serveur/partage1 disparait et apparait alors /mnt/cifs/serveur avec le contenu de partage1).
+
=== Installation et configuration de base de backuppc ===
Contournement:
+
On commence à installer backupPC sur le serveur. Sous debian, il s'agit d'installer le paquet ''backuppc'':
* installer autofs4 (venant du depot Lenny)
+
aptitude install backuppc
* installer smbfs, autofs5 avec un montage "direct":
+
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:
<code>
+
htpasswd /etc/backuppc/htpasswd backuppc
--- /etc/auto.master ---:
+
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
  
/- /etc/auto.monserveur
+
=== Création d'une configuration par défaut via l'interface web ===
  
--- /etc/auto.monserveur ---
+
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.
  
/mnt/cifs/serveur/partage1 -fstype=cifs,security=none ://<IP_SERVEUR>/<PARTAGE1>
+
Pour cela, accéder à l'interface web via l'adresse du type <nowiki>http://machine.domaine.tld/backuppc</nowiki> (''machine.domaine.tld'' était un nom de votre serveur) en vous authentifiant via l'utilisateur ''backuppc'' créé lors de l'installation du paquet debian.
  
</code>
+
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.
  
Pour le moment je n'ai pas eu de succès a utiliser un montage "indirect" sous squeeze:
+
=== Création d'une clef ssh dédiée ===
  
<code>
+
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.
--- /etc/auto.master ---:
 
  
/mnt/cifs/serveur /etc/auto.monserveur
+
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
  
--- /etc/auto.monserveur ---
+
== Configuration d'une nouvelle sauvegarde ==
  
partage1 -fstype=cifs,security=none ://<IP_SERVEUR>/<PARTAGE1>
+
Si vous souhaitez configurer la sauvegarde d'une nouvelle machine, suivez les étapes ci-dessous.
  
</code>
+
=== Autoriser la connexion ssh sur la machine à sauvegarder ===
  
Note: le security=none c'est juste pour ne pas allonger la ligne dans cet exemple. Il est tout a fait possible d'indiquer une authentification avec les options de montage !
+
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 <<_EOD_ >> /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
 +
_EOD_
 +
(les caractères de la clef publique ont été supprimés par souci de brièveté).
  
== Configuration 1 ==
+
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 [http://backuppc.sourceforge.net/faq/ssh.html FAQ de BackupPC].
  
Points de montage statiques:
+
=== Configurer les nouvelles machines via l'interface de backuppc ===
  
* <code>/etc/auto.master</code> (option --ghost en lenny, plus en squeeze):
+
Se connecter à l'interface web de BackupPC, accessible à une adresse du type <nowiki>http://machine.domaine.tld/backuppc</nowiki>:
/mnt/cifs/192.168.1.12/ /etc/auto.cifs.serveur --ghost
+
* dans le menu « Serveur » sur le cadre de gauche de la page web, cliquer sur « Mofifier les machines »
* <code>/etc/auto.cifs.serveur</code>:
+
* sur la page qui s'affiche, cliquer sur le bouton « Ajouter »
Dossier1 -fstype=cifs,security=none ://192.168.1.12/Dossier1
+
* 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).
Dossier2 -fstype=cifs,security=none ://192.168.1.12/Dossier2
+
* 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.
  
== Configuration 2 ==
+
=== Effectuer une première connexion SSH manuellement ===
  
Points de montage dynamiques.
+
'''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):
Avantage:
+
  sudo -u backuppc ssh root@machineZ
* pas besoin de configurer si on ajoute un nouveau dossier partagé
+
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.
Inconvénients:
 
* problèmes de stabilité (démontage automatique?)
 
* pas de dossiers "ghost"
 
  
* <code>/etc/auto.master</code>:
+
=== Lancer une première sauvegarde ===
/mnt/cifs /etc/auto.smb
+
 
* patcher <code>autofs.smb</code> pour éviter de créer des points de montage quand le dossier distant n'existe pas:
+
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).
<pre>
+
 
--- /etc/auto.smb 2008-03-08 11:19:48.000000000 +0100
+
== Informations complémentaires ==
+++ /etc/auto.smb.fixed 2010-02-25 17:47:01.000000000 +0100
+
 
@@ -5,10 +5,14 @@
+
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:
# This file must be executable to work! chmod 755!
+
 
+
Sur le serveur, la configuration de backuppc est principalement conservée dans les fichiers suivants:
key="$1"
+
* /etc/backuppc/config.pl : c'est la configuration générale utilisée par défaut pour toutes les machines
-mountopts="-fstype=cifs"
+
* /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.
+mountopts="-fstype=cifs,sec=none"
+
* /etc/backuppc/hosts : liste des machines configurées
smbopts=""
+
* /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).
credfile="/etc/auto.smb.$key"
+
* 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) »)
+
 
+if echo $key | grep '/' > /dev/null; then
+
== Voir aussi ==
+    exit
+
 
+fi
+
* [http://backuppc.sourceforge.net/index.html le site officiel de BackupPC]
+
+
* [[Sauvegarde_incrémentielle|quelques informations sur BackupPC]] sur notre page dédiée aux solution de sauvegardes incrémentielles (informations sont en partie redondantes).
for P in /bin /sbin /usr/bin /usr/sbin
 
do
 
if [ -x $P/smbclient ]
 
</pre>
 
* Accès par <code>/mnt/cifs/I.P.du.serveur/NomDuDossier</code>
 

Version du 9 juin 2011 à 14:59

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 <<_EOD_ >> /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
_EOD_

(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