Soumis par Deajan le

Aujourd'hui, Badministrateur.com vous propose de mettre en oeuvre le clonage massif d'un parc informatique.
Parmis les solutions existantes, l'une d'elle est particulièrement attrayante vu qu'elle gère virtuellement tout système d'exploitation à cloner, qu'elle est gratuite, et qu'elle gère virtuellement toute carte réseau existante, il s'agit de CloneZilla Server Edition.

Basée sur DRBL (Diskless Remote Boot Linux) qui gère le démarrage PXE et la fonction Wake On Lan, CloneZilla SE est étudié pour cloner un disque dur soit secteur par secteur pour un système de fichiers inconnu, soit de cloner seulement les secteurs utilisés dans le cas d'un système de fichiers connu. La bonne nouvelle, c'est que la quasi totalité des systèmes de fichiers récents sont reconnus, que ce soit du monde Microsoft, Unix, BSD ou Apple.

La deuxième bonne nouvelle est que DRBL utilise un kernel linux standard comme base de démarrage des ordinateurs clients. Donc toute carte réseau supporté par le kernel le sera par la solution de clonage.

Clonezilla tire parti des technologies NFS pour la distribution du système client et udpcast pour l'envoi multicast des données. Il est donc essentiel que votre matériel réseau soit capable de gérér parfaitement ces protocoles. Voici les quelques points à surveiller:

  1. L'utilisation de switchs administrables peut provoquer des problèmes si les fonctions de filtrage anti-flooding sont activées.
  2. Certaines cartes réseau (ex: Atheros AR81xx) ne supportent pas correctement le protocole NFS mais fonctionnent parfaitement pour tout le reste. A vérifier.
  3. Ne jamais croiser les jets ! Votre système d'exploitation du serveur devrait être de la même architecture que le système client utilisé pour le déploiement.
  4. Certaines distributions ne fonctionnent pas avec DRBL (ex: Linux Mint 9).
Pour ce guide, l'installation du serveur à été éffectuée sous Ubuntu 10.04 Lucid i686. Le serveur à été utilisé pour déployer un parc assez homogène d'environ 450 machines dans un lycée (Merci à Vincent sans qui les tests de déploiement n'auraient pas eu lieu). Le  déploiement s'est passé par vagues de 40-60 machines, bien que dans l'absolu il aurait été possible de cloner toutes les machines identiques en même temps si la topologie des lieux l'aurait permise.
 
Il est également conseillé de disposer d'un disque dédié aux images. Si vous disposez d'un disque dédié, configurez-le comme suit:
 
Créez une partition sur votre disque (sdb dans l'exemple) si cela n'est déjà fait (option N dans fdisk):
$ sudo fdisk /dev/sdb
Formattez la partition si vous le souhaitez:
$ mkfs -j -b 8192 /dev/sdb1
Montez la partition à l'endroit approprié pour stocker les images à cloner:
$ mount /dev/sbb1 /home/partimag
Pensez également à fare une modification du fichier /etc/fstab si le serveur que vous installez est persistant afin que la partition soit montée à chaque démarrage.
 
Enfin, lançons nous dans le vif du sujet. Pour commencer il faut configurer le réseau. Ce guide utilise un réseau de classe C, mais il aurait tout à fait été possible de configurer le réseau en classe A ou B evidemment. La même carte réseau à été ici configurée avec un double addressage, d'un côté en client DHCP (eth0) pour pouvoir connecter facilement le serveur à internet, et de l'autre côté un plan d'adressage fixe (eth0:1).

$ nano /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
post-down iptables-save > /etc/iptables.rules

#eth0:1
auto eth0:1
iface eth0:1 inet static
address 192.168.200.254
network 192.168.200.0
netmask 255.255.255.0
broadcast 192.168.200.255

Et voici pour appliquer les changements en relançant le réseau

$ sudo /etc/init.d/networking restart

Nous pouvons maintenant télécharger DRBL. Il faut pour cela ajouter le dépôt DRBL à la liste de aptitude.

$ wget http://drbl.nchc.org.tw/GPG-KEY-DRBL
$ apt-key add GPG-KEY-DRBL

$ nano  /etc/apt/sources.list

ajouter les lignes suivantes au fichier

deb http://free.nchc.org.tw/ubuntu/ lucid main restricted universe multiverse
deb http://free.nchc.org.tw/drbl-core/ drbl stable

Si vous utilisez une version differente de ubuntu, pensez à remplacer lucid par le nom de votre distribution. Cette manipulation marche depuis la version v5 brezzy.

Validez les nouveaux dépôts d'aptitude avec

$ apt-get update

Puis lancez l'installation de DRBL avec la commande

$ apt-get install drbl

Prets pour lancer l'installation proprement dite de DRBL, alors lancez

$ /opt/drbl/sbin/drblsrv -i

Cette commande vous demandera plusieurs choses comme

  • Télécharger images pxe ? Y (elles sont nécéssaires)
  • Sortie console ? N
  • Niveau architecture : i686 (la même que le serveur... non serieux ? qui utilise encore des 486 ?)
  • Mettre à jour le système d'exploitation ? Y

Preparez vous du café, car le script d'installation va maintenant télécharger les images netboot de CentOS 4 & 5, Debian 3 & 4, Fedora 12 & 13, Mandrake 2010, OpenSuse 11.2, Scientific Linux, Ubuntu Karmic & Lucid ... et cela va durer.

Personnellement j'ai eu droit à l'erreur sur une architecture x64.

NO kernel is available!!! Something went wrong!

Si le script d'installation n'arrive pas à télécharger un kernel, vous pouvez toujours en télécharger un manuellement avec

$ wget http://ubuntu.cs.utah.edu/ubuntu/pool/main/l/linux/linux-image-2.6.35-6-generic_2.6.35-6.9_i386.deb
$ /opt/drbl/sbin/drblsrv-offline -k /root/linux-image-2.6.35-6-generic_2.6.35-6.9_i386.deb

Si tout est en ordre, alors passons à la phase de configuration:

$ /opt/drbl/sbin/drblpush -i

La configuration vous demandera les questions suivantes:

  • domaine dns: badministrateur.local
  • domaine NIS: penguinzilla (on laisse par défaut)
  • 2 cartes réseau présentes, laquelle est publique (internet) : eth0
  • lecture des adresses mac ? N (ceci sert uniquement pour la fonction WOL et pour les réservations DHCP)
  • Réservationds DHCP ? N
  • valeur debut dernier octet de l'adresse IP: 1 ( pour 192.168.200.1)
  • Nombre de postes ? 253 ( le serveur se trouve à l'adresse 254)
  • Accepter les valeurs ? Y
  • Mode DRBL ? 1 (DRBL SSI)
  • Clonezilla mode ? 1 (Box mode)
  • Dossier à partager ? /home/partimag
  • Utiliser le swap du client ? N
  • Mode graphique ? 2 (text)
  • Mot de passe root des clients ? N
  • Mot de passe PXELinux ? N
  • Définir promt de démarrage ? N
  • Arrière plan graphique ? N
  • Laisser les periphériques accessibles au client ? N
  • Alias d'IP ? N
  • Mode terminal ? N
  • DRBL doit-il faire NAT ? N
  • Prêt pour déployer les fichiers sur le système et écraser les paramètres du parefeu ? Y
 
J'espère pour vous que votre stock de Mokka-Arrabica n'est pas épuisé, car l'opération de préparation du système client va prendre un certain temps, et tout le monde le sait, le café, ca tient éveillé.
 
Enfin si le café a marché et que vous êtes toujours reveillés, vous pouvez maintenant lancer DRBL avec la commande:
 
$ /opt/drbl/sbin/dcs
 
Une fenêtre apparaitra et vous proposera entre autres clonezilla start et clonezilla-stop. En choissisant clonezilla-start, un menu apparaitra et vous proposera de démarrer les différents modes de CloneZilla qui sont:
 
Modes clonezilla Description
clonezilla-save-disk Lancer le système client sur la machine source afin de capturer l'image d'un disque vers le serveur
clonezilla-restore-disk Lancer le système client sur toutes les machines de destination afin de redistribuer une image disque précédemment capturée
clonezilla-save-parts Lancer le système client sur la machine source afin de capturer l'image d'une partition vers le serveur
clonezilla-restore-parts Lancer le système client sur toutes les machines de destination afin de redistribuer une image d'une partition précédemment capturée
 
La première étape consistera à capturer une image de l'ordinateur source vers le serveur. Nous allons donc utiliser la fonction clonezilla-save-disk ou encore clonezilla-save-parts.
Vos ordinateurs sources & destination doivent évidemment être reglés pour démarrer en premier lieu sur le réseau. Ce réglage s'éffectue dans le bios et dans le cas malheureux ou cela n'est déjà fait, il va falloir passer manuellement faire ce réglage sur toutes les machines à moins de disposer d'un outil de gestion à distance comme par exemple Intel AMT. Certains constructeurs OEM comme Dell fournissent de tels outils, renseignez-vous.
 
Une fois l'image capturée, il suffira de déployer l'image via les fonctions clonezilla-restore-disk ou clonezilla-restore-parts.
 
Evidemment, nous pouvons nous passer de cette merveilleuse GUI et tout passer en script:
 
Exemple d'une restauration de type multicast:

 $ /opt/drbl/sbin/drbl-ocs -b --nogui –s -r -p poweroff --clients-to-wait 1 --time-to-wait 10 --max-time-to-wait 60 startdisk multicast_restore multimedia-20-05-2010 "sda"
 
  • -b : Mode batch, aucune question ne sera posée
  • --nogui: Aucune interface graphique pendant le processus de restauration
  • -s : Ne pas essayer de détecter le matériel de(s) machine(s) cible(s)
  • -r : Tenter de redimmensionner la partition après la restauration
  • --clients-to-wait [nombre] : Nombre minimal de clients à attendre avant lancement de la restauration
  • --time-to-wait [nombre] : Temps minimal (en secondes) à attendre avant déclenchement de la restauration
  • --max-time-to-wait [nombre] : Temps maximal (en secondes) à attendre avant déclenchement de la restauration
  • [startdisk | startparts] : Mode de fonctionnement de ClnoeZilla (disque entier / partition)
  • [restore | multicast_restore | save] : Mode de fonctionnement de CloneZilla (restauration / restauration multicast / capture d'image)
  • multimedia-20-05-2010 : nom de l'image à capturer / deployer
  • sda : nom du disque sda = premier disque scsi / sata, sdb = deuxième disque scsi / sata, etc... ou hda = premier disque ide, hdb = deuxième disque ide, etc..
Votre déploiement de Windows Vista / Seven n'a pas fonctionné et vous donne un écran bleu ?
Effacez toutes les sous-clés de la clé HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices sauf Default puis recapturez l'image afin de la redéployer.
 
Que faire si le système de déploiement sur votre ordinateur client n'a pas démarré ?
Il y a de fortes chances que le démarrage soit bloqué au "passage de main" entre TFTP et NFS, soit au moment ou le pilote de la carte réseau est activé par le kernel. Commençez par vérifier que la carte soit compatible avec l'image de démarrage employée.
 
Pour les connaisseurs, vous avez la possibilité de recompiler votre propre kernel en incluant le pilote réseau de la manière suivante:
 
Immaginons que notre serveur fonctionne avec le kernel 2.6.30-bpo.1-686-bigmem, et le client fonctionne avec le kernel 2.6.32-bpo.2-686. La version du kernel utilisée par le client peut être obtenu avec la commande
$ cat /tftpboot/nbi_img/kernel_version_in_initrd.txt
 
Pour compiler un module sur ce kernel, installez-le sur le serveur drbl. Vous aurez également besoin des entetes du kernel ainsi que le code source du pilote de votre carte réseau.
Démarrez le serveur avec le kernel 2.6.32-bpo.2-686
Compilez le pilote de votre carte réseau et installez-le (/lib/modules/2.6.32-bpo.2-686/)
Lancez la commande suivante afin de mettre à jour initrd pour les ordinateurs clients 
$ /opt/drbl/sbin/mknic-nbi -k 2.6.32-bpo.2-686
 
Si vous êtes confronté à un problème, lisez la faq à l'adresse http://drbl.org/faq/ relativement complète.

Commentaires

Gilles

Un grand merci pour ce super tuto ! qui m'a permis de gagner beaucoup de temps sur la mise en place d'une salle de classe !

Multicast DRBL

Bonjour,

je souhaite savoir le débit que vous obtenez en clonant des postes sur un réseau (paralèlle) en Giga Ethernet ?
Si c'est du multicast, les postes sont construits de façon identiques et à la vitesse du moins rapide, est-ce celà ?
2 jours pleins pour cloner une vingtaine de postes... est-ce normal ? Cloner manuellement de disques à disque, je vais plus vite ! Avez-vous une idée ? est-ce que je m'y prends mal ? Problème Hard du serveur (disque ? carte ?) des réseau (cablage et switch pourtant en cat. 6 pour du Giga), problème des clients ? Images (25Go) trop lourdes ?

Si vous pouviez m'éclairer,
Merci d'avance

Cordialemet

Hello

Hello

J'ai suivi le tuto à la lettre, coté serveur tout va bien, mais quand je boote le client en pxe, après l'obtention de l'ip, il y a du texte qui défile, puis la résolution de l'écran change et l'ordinateur semble bloqué, après. Je ne comprends pas bien le texte affiché, il y a une petite barre qui clignote mais je ne peux rien saisir, et pas d'activité disque. Y'a bien une ligne qui dit no acpi video bus found, serait ce un problème de driver ? C'est un pc récent avec un i5 sandy bridge.

Problème drivers

Bonjour,

Je rencontre un problème concernant l'installation d'un nouveau driver destiné à une carte réseau intel82579.
J'arrive à installer les drivers sur le serveur monté en Ubuntu 10.04 mais le poste client ne le trouve pas, il m'indique que le drivers de la carte est introuvable. A priori le client ne va pas le chercher la où je l'ai installé.
Voici le message d'erreur :
"The driver of the network card is not found.
Is this kernel 2.6.32-25-generic too old so it does not support this network card ?"

Si vous avez une idée je suis preneur.

Bonne journée.

Salut,

Salut,
J'ai eu le même problème! Cela vient du fait que ta carte réseau est trop récente par rapport au kernel.
Il faut télécharger le driver de ta carte réseau, l'installer sur le serveur Clonezilla, puis recompiler le noyau.
Je te fil un lien ou cela est expliqué :
http://www.commentcamarche.net/forum/affich-23060588-probleme-carte-rese...
Si tu as toujours le problème, contact moi. J'avoue avoir pas mal galéré!
Cordialement,

Salut,

Salut,

Merci pour la réponse.
J'ai bien suivi la procédure mais le poste client ne va pas chercher les drivers au bon endroit.
Sachant que je ne suis pas un grand expert en Linux je me demande si j'ai bien installé les drivers au bon endroit.
Comment le vérifier?

Merci d'avance.

Ajouter un commentaire