WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Système de sauvegarde et de restauration de données avec tolérance de pannes.

( Télécharger le fichier original )
par Hyppolyte Nà¢â‚¬â„¢guessan
Hautes Etudes Technologiques et Commerciales Abidjan - Licence professionelle 2016
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

N'GUESSAN K. Hyppolyte 2012 - 2013

49

III.3. Le déploiement de la solution

III.3.1. Le système de sauvegarde et de restauration de données
III.3.1.1. L'installation

La première étape est l'installation et la configuration du serveur de sauvegardes. BackupPC est disponible dans les dépôts Ubuntu et Debian. Pour l'installer, il faut simplement lancer la commande suivante :

apt-get install backuppc

A l'installation, il est créé l'utilisateur backuppc ainsi que le « password user ». Soit nous la conservons tel-quel ou nous la changeons à l'aide de la commande (voir figure 11)

sudo htpasswd /etc/backuppc/htpasswd backuppc

Figure 11: La configuration du mot de passe de BackupPC (Source : Hyppolyte N'GUESSAN)

III.3.1.1.1. Ajout de l'utilisateur dans le groupe backuppc

Pour démarrer backuppc, il faut ajouter l'utilisateur de la session dans le groupe backuppc.

Pour cela, il faut exécuter la ligne de commande suivante :

sudo adduser [MON_USER] backuppc

III.3.1.1.2. Ajout du fichier apache.conf

Comme l'installation ne copie pas le /etc/backuppc/apache.conf sur le serveur apache2.

Il faut le faire soit même en copiant le fichier dans le répertoire /etc/apache2/site-available/ avant de rendre actif le site:

sudo cp /etc/backuppc/apache.conf /etc/apache2/site- available/backuppc.conf

puis le rendre actif :

sudo a2ensite backuppc.conf

Un redémarrage du serveur web est nécessaire pour prendre en compte les modifications.

N'GUESSAN K. Hyppolyte 2012 - 2013

50

sudo /etc/init.d/apache2 restart

La page web de backuppc est ainsi disponible pour toutes les configurations à l'adresse : localhost/backuppc (voir figure 12)

Figure 12: La page web BackupPC (Source : Hyppolyte N'GUESSAN)

III.3.1.2. La configuration du serveur de sauvegarde et de restauration de données

III.3.1.2.1. Le fichier hôte

Nous pouvons utiliser l'interface web pour configurer nos hôtes comme nous le montre le voyons sur la figure 13.

Figure 13: L'interface Web de configuration des hôtes (Source : Hyppolyte N'GUESSAN)

Nous pouvons également éditer manuellement le fichier dans notre terminal en utilisant la commande :

vim /etc/BackupPC/conf/hosts

N'GUESSAN K. Hyppolyte 2012 - 2013

51

Sur la figure 14, nous avons une illustration de ce fichier. Cela nous permey de voir que la première colonne correspond au nom d'hôte. La seconde spécifie si DHCP (Dynamic Host Configuration Protocol) doit être activé pour la recherche de l'hôte. La troisième colonne indique l'utilisateur "propriétaire" de l'hôte, la quatrième et dernière les utilisateurs supplémentaires.

Figure 14: La configuration manuelle des hôtes (Source : Hyppolyte N'GUESSAN)

III.3.1.2.2. Fichier de configuration générale

Il s'agit maintenant de configurer le serveur. Il existe deux fichiers de configuration : un général et un par hôte. Le fichier général est /etc/BackupPC/ config.pl, chacun des fichiers de configuration des hôtes /etc/BackupPC/pc/{nom_hôte}.pl. Le fichier de configuration général est créé lors de l'installation, les fichiers de configuration par hôte via l'ajout d'un hôte et sa configuration depuis l'interface web d'administration comme nous le montre la figure 15.

Figure 15: La configuration générale de BackupPC via l'interface Web (Source : Hyppolyte N'GUESSAN)

Nous pouvons ici aussi choisir de modifier le fichier à la main. Voici certaines options de configuration du serveur :

N'GUESSAN K. Hyppolyte 2012 - 2013

52

$Conf{ServerHost} = 'localhost'; nom du serveur de sauvegarde. $Conf{WakeupSchedule} = [1, 2, 3] ; : heures de réveil du serveur. La valeur

1, 2, 3 (par défaut) signifie que le serveur s'éveillera toutes les heures sauf minuit. Il est aussi possible de spécifier une ou plusieurs heures fixes, séparées par des virgules : 1,2.5,6 (une heure, deux heures trente et six heures).

$Conf{BackupPCUserVerify} = 1 ; la valeur par défaut (1) force le script à vérifier que le serveur est lancé par l'utilisateur spécifié dans la directive

$Conf{BackupPCUser}. Cela permet d'éviter que le script du serveur soit exécuté par un utilisateur non autorisé (par exemple root). Il est conseillé de laisser cette valeur à 1.

Suivent ensuite des directives qui peuvent être remplacées dans le fichier de configuration d'un hôte. Si le fichier d'hôte ne contient aucune indication, la valeur du fichier général de configuration sera prise en compte.

$Conf{SmbShareName} = ['C$','D$'] ; nom du/des partage(s) à sauvegarder pour les sauvegardes via samba

$Conf{SmbShareUserName} = ; utilisateur samba à utiliser lors des sauvegardes windows

$Conf{SmbSharePasswd} = ; mot de passe de l'utilisateur samba

$Conf{TarShareName} = ['/', '/home']; système(s) de fichiers à sauvegarder en utilisant la méthode tar

$Conf{RsyncShareName} = ['/','/home'] ; système(s) de fichiers à sauvegarder en utilisant les méthodes rsync et rsyncd

$Conf{FullPeriod} = 6.97; périodicité de sauvegarde complète des hôtes $Conf{IncrPeriod} = 0.97; périodicité de sauvegarde incrémentielle des hôtes

$Conf{FullKeepCnt} = 2 ; nombre de sauvegardes complètes à conserver. Cette directive est très souple, je vous recommande la lecture de cette partie de l'aide en ligne afin de configurer cette option selon vos besoins

$Conf{BackupFilesOnly} = undef ; liste des fichiers et répertoires à sauvegarder. Je laisse personnellement cette valeur à undef car je la défini spécifiquement pour chaque hôte.

N'GUESSAN K. Hyppolyte 2012 - 2013

53

Dans le cas où cette valeur ne serait pas définie dans le fichier de configuration de l'hôte, la sauvegarde s'opérerait sur le partage par défaut (C$ et D$ pour samba, / et /home pour tar, ...)

$Conf{BackupFilesExclude} = undef; liste des fichiers et répertoires à ne pas sauvegarder. Identique à l'option précédente

$Conf{BlackoutPeriods} = [{hourBegin => 8.0, hourEnd => 23.0, weekDays

=> [1, 2, 3, 4, 5, 6, 7],},] ; : configuration du blackout. Le blackout correspond aux périodes durant lesquelles le serveur ne se réveillera pas automatiquement. Ici, la période de blackout est définie de 8 heures à 23 heures pour tous les jours de la semaine

$Conf{XferMethod} = 'rsync' ; méthode de sauvegarde des hôtes (peut être rsync, smb, rsyncd, tar, archive)

$Conf{XferLogLevel} = 1 ; degré de verbosité. Plus le degré sera élevé, plus le fichier de log sera complet. Il peut être utile d'augmenter cette valeur pour un hôte donné qui pose des problèmes

$Conf{ArchiveComp} = 'bzip2'; méthode de compression à utiliser pour la sauvegarde. Cette valeur peut être none, gzip ou bzip2

$Conf{ServerInitdPath} = '/etc/init.d/backuppc'; chemin vers le script de démarrage. Cette directive permet le lancement du serveur depuis l'interface CGI

$Conf{ServerInitdStartCmd} = '$sshPath -q -x -l root $serverHost

$serverInitdPath start < /dev/null >& /dev/null'; : commande de démarrage du serveur depuis l'interface CGI. Cet exemple est tiré des commentaires du fichier de configuration

$Conf{CompressLevel} = 3 ; taux de compression tel que renseigné lors de l'exécution du script configure.pl. Le taux peut prendre une valeur de 0 à 9, reportez-vous à la documentation de backuppc et de zlib pour plus d'informations. La valeur 3 est généralement un bon choix.

La section suivante dans le fichier de configuration vous permet de configurer l'envoi des emails en cas d'erreur, d'hôte jamais sauvegardé, etc...

$Conf{EMailNotifyMinDays} = 2.5; période minimale durant laquelle un utilisateur ne recevra pas de mails. La valeur par défaut (2.5) signifie que l'utilisateur ne recevra qu'un message tous les trois jours au maximum

N'GUESSAN K. Hyppolyte 2012 - 2013

54

$Conf{EMailFromUserName} = 'backuppc'; adresse de l'expéditeur. Les emails envoyés prendront en champ from la valeur indiquée ici. Il est possible d'indiquer le nom d'utilisateur ou l'adresse email complète en fonction de la configuration de votre serveur mail

$Conf{EMailAdminUserName} = 'admin-backup@backup.domain.com'; : adresse email de l'administrateur du serveur de sauvegarde

$Conf{EMailUserDestDomain} = '@domain.com'; domaine des utilisateurs. Les emails seront envoyés à l'adresse {utilisateur}@ domain.com

La dernière section du fichier correspond à la configuration de l'interface CGI :

$Conf{CgiAdminUserGroup} = ; groupe des utilisateurs administrateurs. Le groupe doit exister dans le fichier .htpasswd

$Conf{CgiAdminUsers} = 'admin utilisateur1' ; utilisateurs administrateurs. Chaque utilisateur doit exister dans le fichier /etc/BackupPC/apache.users

$Conf{CgiURL} = ' http://localhost/BackupPC' ; adresse HTTP du script CGI $Conf{Language} = 'fr'; langue de l'interface CGI

$Conf {CgiDateFormatMMDD} = 0 ; format de date. 0 pour le format international (JJ/MM) et 1 pour le format US (MM/JJ)

$Conf{CgiNavBarAdminAllHosts} = 1 ; liste de tous les hôtes pour les administrateurs. Si cette valeur est à 1, les administrateurs pourront accéder à tous les hôtes, sinon seuls seront listés les hôtes pour lesquels l'utilisateur est spécifié en user ou moreUsers dans le fichier de configuration des hôtes.

III.3.1.2.3. Le fichier de configuration par PC

Il est maintenant nécessaire de configurer les hôtes à sauvegarder. Les directives des fichiers d'hôtes (/etc/BackupPC/pc/{hote}.pl) prennent le pas sur celles du fichier de configuration général. Bien entendu, si vous planifiez de ne sauvegarder qu'un seul et unique poste, ou que la configuration est strictement identique sur chacun des postes à sauvegarder, il est possible d'utiliser uniquement le fichier de configuration général paramétré avec les bonnes directives. Vous pouvez utiliser l'interface web d'administration pour cela en sélectionnant un hôte dans la liste déroulante et en cliquant sur le lien « Modifier la configuration ». (Voir figure 16)

 
 

Figure 17: Le fichier de configuration pour un hôte linux (Source : Hyppolyte N'GUESSAN)

 
 
 

N'GUESSAN K. Hyppolyte 2012 - 2013

55

 

Figure 16: L'interface web d'administration (Source : Hyppolyte N'GUESSAN)

Cette fois encore, nous pouvons choisir d'éditer le fichier nous-même. Les directives possibles sont celles situées dans les parties spécifiées du fichier de configuration général. Il est intéressant de noter que bon nombre des directives peuvent être modifiées par hôte, votre fichier de configuration général peut être configuré pour utiliser rsync avec SSH (Secure Shell), et vous pouvez facilement mettre en place une sauvegarde via SMB pour un hôte donné.

Voici ce à quoi pourrait ressembler un fichier de configuration pour un hôte linux :

N'GUESSAN K. Hyppolyte 2012 - 2013

56

Un fichier de configuration pour un poste Windows pourrait ressembler à ceci :

Figure 18: Le fichier de configuration pour un hôte Windows (Source : Hyppolyte N'GUESSAN)

III.3.1.2.4. La configuration du SSH

Il va falloir configurer nos deux hôtes pour que le serveur puisse établir une connexion sur le poste à sauvegarder en SSH mais sans être embêté par la demande de mot de passe. Pour cela nous allons utiliser l'utilisateur 'backuppc' (car c'est lui qui instancie la connexion au serveur distant), puis créer une clef RSA, que nous copierons dans le répertoire 'authorized_keys' de l'utilisateur de la machine à sauvegarder. Ainsi notre utilisateur 'backuppc' pourra se logger sur le serveur distant sans mot de passe. Pour réaliser cela, nous utilisons les commandes suivantes :

su backuppc ssh-keygen -t rsa

Il convient ensuite de copier la clé ainsi créée sur chaque hôte cible, dans le fichier ~/.ssh/authorized_keys de l'utilisateur possédant les droits de lecture des répertoires à sauvegarder. Pour cela, nous utilisons la commande :

ssh-copy-id -i .ssh/id_rsa.pub utilisateur@dgttc

Pour vérifier simplement que la précédente manipulation a fonctionné, nous nous connectons à l'hôte distant. Il ne nous sera pas demandé de mot de passe.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Il ne faut pas de tout pour faire un monde. Il faut du bonheur et rien d'autre"   Paul Eluard