DRBL: Clonezilla Edition Serveur

De Wiki de la communauté Mandriva.

Cette page est une ébauche. Elle mérite des améliorations.
Si vous voulez contribuer, cliquez simplement sur l'onglet modifier. Consultez également les autres pages dont le contenu est à réviser.

Sommaire

Introduction

Clonezilla, couplé à un serveur DRBL, est un logiciel libre qui permet de déployer massivement des images des systèmes d'exploitation GNU/Linux et/ou MS Windows sur une multitude de postes et ce simultanément grâce au mode multicast. Pour prendre la mesure de l'efficacité de Clonezilla, il faut avoir que la restauration d'une image MS Windows permet tout simplement de saturer un lien ethernet 100 Mbps avec un débit observé d'environ 94 Mbps !

Pour une présentation plus complète de Clonezilla, voici une traduction de la page d'accueil du projet Clonezilla s'appuyant sur la traduction réalisé par Georges Connard disponible sur http://clonezilla.sourceforge.net/related_article/

Qu'est-ce que Clonezilla ?

Vous êtes probablement familier avec le logiciel propriétaire Norton Ghost®, et son équivalent Open-Source, Partition Image. Le problème avec ces deux logiciels est qu'ils prennent beaucoup de temps pour cloner massivement des systèmes provenant de plusieurs postes. Vous avez probablement entendu parler de la solution de Symantec à ce problème, Symantec ghost Corporate Edition®, fournissant le multicasting. Et bien maintenant, il existe un système de clonage libre appelé Clonezilla, proposant le déploiement de client en mode unicast et en mode multicast !

Clonezilla, qui est basé sur DRBL, Partition Image, ntfsclone, et udpcast, vous permet de cloner et restaurer des clients. Plusieurs éditions de Clonezilla sont disponibles:

  • Clonezilla live: Clonezilla live est adapté à la sauvegarde et la restauration d'une seule machine
  • Clonezilla server edition: Clonezilla Server Edition est destiné au déploiement en masse de machines en permettant de cloner plusieurs (40 machines et plus) machines simultanément. Clonezilla sauvergarde et restaure seulement les blocs utilisés sur le disque dur. Cela permet de réaliser des clonages plus efficaces. Clonezilla a été utilisé dans la salle de classe C du NCHC pour cloner 41 ordinateurs simultanément. Cela prends à peu près 10 minutes pour déployer une image système d'une taille totale de 5.6 Go sur l'ensemble des 41 postes grâce au mode multicast ! Cette édition nécessite l'installation sur le système GNU/Linux
  • DRBL live (Clonezilla Server Edition live): Le but de DRBL Live est de permettre le fonctionnement d'une machine comme serveur DRBL sans installation. Le déploiement de client en mode multicast est donc possible ! En résumé, DRBL live est l'édition serveur en liveCD tandis que Clonezilla live est l'édition personnelle en live CD. Plus d'infos

Fonctionnalités de Clonezilla

  • Logiciels libresImage:Wikipedia-icon.png (GPL).
  • Systèmes de fichiers supportés: ext2, ext3, reiserfs, xfs, jfs de GNU/Linux, FAT et NTFS de MicroSoft Windows. Filesystem supported: ext2, ext3, reiserfs, xfs, jfs of GNU/Linux, and FAT, NTFS of M$ Windows. Vous pouvez donc clonez un système GNU/Linux ou MS Windows. Pour les autres systèmes de fichiers, Clonezilla utilise dd pour sauvegarder la partition.
  • LVM2 (LVM version 1 ne l'est pas !) sous GNU/Linux est supporté.
  • Le multicast est supporté dans « Clonezilla Server Edition », ce qui est adapté au déploiement en masse de postes. Vous pouvez également l'utiliser à distance pour sauvegarder ou restaurer un groupe de postes si PXE et le Wake-On-Lan sont supportés par les clients.
  • S'appuie sur Partimage, ntfsclone and dd pour cloner les partitions. Cependant, clonezilla, incluant d'autres programmes, est capable de sauvegarder et restaurer non seulement des partitions, mais aussi un disque entier.
  • Pour les systèmes de fichiers supportés (à savoir ext2, ext3, reiserfs, xfs, jfs, fat, ntfs), seul les blocs des disques durs utilisés sont sauvegardés et restaurés. Pour les systèmes de fichiers non supportés, clonezilla effectue une copie secteur par secteur de la partition via dd
  • En utilisant un autre logiciel libre nommé drbl-winroll; qui est aussi développé par les développeurs du projet Clonezilla; le nom de la machine (hostname), le groupe et le SID des clones MS Windows peut-être automatiquement modifié.
  • Un liveCD de clonage de machine, sans installation préalable, intitulé Clonezilla live est également disponible.

Quelle version de Clonezilla choisir ?

  • Clonezilla Live: Vous permet d'utiliser un CD/DVD ou une clé USB pour booter et exécuter clonezilla (en mode unicast seulement)
  • Clonezilla server edition: Un serveur DRBL doit être installé et configuré au préalable afin d'utiliser Clonezilla pour déployer massivement des postes (supporte à la fois le déploiement en mode unicast et en mode multicast)
  • DRBL live (Clonezilla Server Edition live): Vous permet d'utiliser un CD/DVD ou une clé USB pour booter et exécuter DRBL/Clonezilla sur une machine sans installation préalable afin de déployer massivement des postes (supporte à la fois le déploiement en mode unicast et en mode multicast)

Prérequis

Nous allons détailler ici, l'installation et la configuration d'un serveur Clonezilla dans un réseau local sous Mandriva GNU/Linux afin de disposer d'un serveur de déploiement d'images en mode multicast et/ou unicast à la Symantec Ghost ou encore Rembo.

La configuration de Clonezilla Server Edition est très souple et autorise donc plusieurs scenarios. On présuppose dans ce tutoriel:

  • Que la machine destiné à accueillir DRBL/Clonezilla ne dispose que d'une seule carte réseau. Cela nous obligera à créer une deuxième interface mais elle virtuelle car l'installation par défaut de clonezilla présuppose l'existence d'au moins 2 interfaces réseaux.
  • Que le réseau local dispose déjà d'un serveur dhcp avec attribution statique de l'adresse ip en fonction de l'adresse MAC du client. Cela nous obligera a arrêter le serveur dhcp qui est automatiquement installer sur le serveur clonezilla et à modifier légèrement la configuration du serveur dhcp de notre LAN pour permettre l'utilisation de notre serveur DRBL/Clonezilla.
  • Que les clients contacte le serveur clonezilla en bootant sur le réseau (mode PXE). Cela nous permettra de sauvegarder/restaurer simplement nos postes en bootant sur le réseau.

Pour d'autres scenarios d'installation et de configuration, on vous invite à parcourir la documentation officielle de DRBL

Installer DRBL

Diskless Remote Boot in Linux, alias DRBL, est un serveur NFS/NIS offrant l'infrastructure nécessaire au boot de clients sans disques dur.

Il est utilisé notamment par le projet Clonezilla pour permettre le déploiement en masse de postes via le réseau en mode unicast ou multicast !

Installer le paquet rpm DRBL

  1. Installer Mandriva GNU/Linux au préalable sur la machine qui nous servira de serveur DRBL/Clonezilla. On opte ici pour l'installation de la dernière version stable de Mandriva GNU/Linux Classic (à savoir la version CD et/ou DVD de Mandriva GNU/Linux )
  2. (optionnel) On choisit d'installer et d'utiliser comme noyau par défaut, le kernel-desktop. Bien que faisant une installation d'un serveur, on fait le choix du noyau kernel-desktop (qui permet la reconnaissance jusqu'à 4Go de RAM) car on utilisera aussi ce noyau comme noyau de boot de nos machines clientes.
  3. Installer la clé GPG dans le trousseau de RPM:
Image:Konsole.png
[root@ordi ~]# wget http://drbl.sourceforge.net/GPG-KEY-DRBL && rpm --import GPG-KEY-DRBL
  1. Télécharger le paquet rpm pour DRBL sur http://drbl.sourceforge.net/download/sourceforge/. On opte pour la version stable de DRBL
  2. Vérifier que le paquet perl-Digest-SHA1 est installé et l'installer le cas échéant:
Image:Konsole.png
[root@ordi ~]# urpmi perl-Digest-SHA1
  1. Installer le paquet rpm de DRBL téléchargé:
Image:Konsole.png
[root@ordi ~]# rpm -Uvh drbl-XXX.i386.rpm
  1. L'installation de DRBL devrait être complète à présent. Il ne reste plus qu'à le configurer.

Configurer Interface réseau virtuel

Le script d'installation de DRBL mis à notre disposition par le projet et que l'on va utiliser, présuppose que la machine où se fait l'installation dispose de 2 interfaces réseaux alors que notre machine serveur n'en dispoe que d'une seule. On va donc créer une interface réseau virtuelle que l'on appellera eth0:1 en plus de eth0 pour satisfaire ce prérequis.

  • eth0:1: Interface réseau virtuelle qui sera considéré par DRBL comme l'interface disposant de l'adresse ip publique (interface WAN). En fait, cette interface dispose d'une adresse privé et n'est créer que pour éviter que le script d'installation de DRBL refuse de poursuivre l'installation.
  • eth0: Interface réseau physique qui sera considéré par DRBL comme l'interface où sont connectés les clients du lan à cloner.

NB: Pour rappel, la méthode recommandée d'installation de DRBL/Clonezilla est sur une machine disposant d'au moins 2 cartes réseaux. Il est tout à fait possible d'installer DRBL/Clonezilla sur une machine avec une carte réseau et une interface réseau virtuelle mais il sera alors nécessaire de s'assurer que le serveur dhcp attribue des adresses ip statiques en fonction de l'adresse mac des clients (ce qui est le cas dans notre configuration !

Pour aboutir à cette configuration, il suffit:

  1. De s'assurer que la configuration ip de eth0 est correcte. Dans notre cas, on souhaite que eth0 soit configuré en mode dhcp et l'on s'assure sur notre serveur dhcp que cette interface reçoive toujours la même adresse ip en fonction de son adresse mac. Pour effectuer la configuration ip, on peut soit utiliser drakconnect, soit l'effectuer manuellement. On devrait alors aboutir à un fichier de configuration /etc/sysconfig/network-scripts/ifcfg-eth0 ayant au moins les directives suviantes:
DEVICE=eth0
BOOTPROTO=dhcp
#Pour information, notre serveur dhcp attribue toujours l'@ip 10.0.0.252
# a l'interface eth0
ONBOOT=yes
METRIC=10
  1. Créer et effectuer la configuration ip de l'interface virtuelle eth0:1. Il suffit pour cela de créer un fichier de configuration /etc/sysconfig/network-scripts/ifcfg-eth0:1 ayant le contenu suivant (on part du principe que l'on est dans un LAN de type 10.0.0.0/24):
BOOTPROTO=static
BROADCAST=10.0.0.255
#On veille à ce que l'@ip de eth0:1 soit différente de l'@ip de eth0
# bien qu'etant dans le même sous-réseau
IPADDR=10.0.0.253
NETMASK=255.255.255.0
NETWORK=10.0.0.0
ONBOOT=yes

Installer DRBL via le script d'installation drblsrv

Pour finir l'installation de DRBL, on va utiliser le script d'installation interactif que met à notre disposition le projet DRBL. Il suffit donc d'exécuter le script /opt/drbl/sbin/drblsrv -i et de répondre aux différentes questions qui sont posées.

Voici les différentes choix que nous avons effectués aux questions de ce script d'installation (cf aussi un exemple in-extenso sur http://jf.bellanger1.free.fr/index.php?mod=news&ac=commentaires&id=6):

  1. On vérifie la bonne détection de notre système Mandriva Linux:
*****************************************************.
Hint! When a yes/no option is available, the default value is uppercase, Ex. (y/N), the default is "N", when you press "Enter", it will use "N". 
If you are not sure which one to choose, you can just press "Enter" key.
*****************************************************.
*****************************************************.
Installing DRBL for Mandriva Linux...
The version number for your OS: MDV2008.0
  1. On refuse la configuration d'un serveur proxy car nous n'en utilisons pas un dans notre LAN (à ajuster selon votre situation):
*****************************************************.
Do you want to set the proxy server ?
[y/N] n
*****************************************************.
  1. On choisit le miroir à utiliser pour configurer les dépôts officiels Mandriva
*****************************************************.
Which "ayo" repository do you want to use for OS packages ?
0 -> free.nchc.org.tw,
1 -> ftp.twaren.net,
2 -> distro.ibiblio.org,
3 -> mdk.linux.org.tw,
5 -> Enter ayo repository (with OS packages) by yourself.
[0] 1
*****************************************************.
------------------------------------------------------
The url and path you selected: http://ftp.twaren.net, http://ftp.twaren.net//Linux/Mandrake/official
------------------------------------------------------
  1. On choisit parmi la liste, le miroir à utiliser pour configurer les dépôts DRBL:
*****************************************************.
Which "ayo" repository do you want to use for DRBL packages ?
0 -> free.nchc.org.tw,
1 -> ftp.twaren.net,
2 -> drbl.sourceforge.net,
5 -> To enter repository (with DRBL packages) by yourself.
[0] 1
*****************************************************.
------------------------------------------------------
The url and path you selected: http://ftp.twaren.net, local-distfiles/drbl-core/i386
------------------------------------------------------
  1. On choisit d'utiliser la version stable de DRBL:
*****************************************************.
Do you want to use the DRBL "unstable" packages which is much more powerful, but maybe very unstable (If you are super brave!!!) 
(If you downloaded the DRBL rpm package from the unstable directory, say "yes" here) ?
[y/N] n
Do you want to use the DRBL "testing" packages which is more powerful, but maybe buggy (If you are brave enough!!!) 
(If you downloaded the DRBL rpm package from the testing directory, say "yes" here) ?
[y/N] n
`/etc/urpmi/urpmi.cfg' -> `/etc/urpmi/urpmi.cfg.drblsave'
  1. On confirme le choix des dépôts effectués:
*****************************************************.
Warning! We have to reset all the existing urpmi setting!
Are you sure you want to continue
[Y/n] y
OK, let's do it!
Removing the old urpmi setting...
*****************************************************.
rien à retirer (utiliser urpmi.addmedia pour ajouter un média)
*****************************************************.
Adding urpmi source...
*****************************************************.

ajout du média « Main (MDK2008.01) »
(...)
--------------------------------------------------------------------
The urpmi setting is finished. 
  1. On refuse d'installer des images d'installation réseau pour les différentes distributions. En effet, seul le mode « Clonezilla Box » de DRBL nous intéresse et non le mode serveur pour clients légers à la LTSP:


*****************************************************.
Do you want to install those network installation boot images so that you can let client to install some GNU/Linux distributions (Debian, Ubuntu, RedHat Linux, Fedora Core, Mandriva, CentOS and OpenSuSE...) via network ? 
///NOTE/// This action will download a lot of files (> 100 MB totally) from Internet, so it might take a few minutes. 
If your client machine has harddisk and it is possible you will install GNU/Linux into that, say Y here. 
If you say "no" here, feel free to run drbl-netinstall to install them later.
[y/N] n
*****************************************************. 
  1. On refuse d'utiliser la sortie console pour les clients (on ne sait pas son utilité en fait
Do you want to use the serial console output for clients ?
If you do NOT know anything about this, say "N" here, otherwise clients might show NOTHING on the screen !
[y/N] n
Use serial console only for clients ? (Suitable for the clients without VGA output).
[y/N] n 
  1. On choisit d'utiliser le même kernel (à savoir kernel-desktop) que celui installé et utilisé sur notre serveur DRBL/Clonezilla:
*****************************************************.
Which CPU architecture kernel do you want to assign for DRBL clients ?
0 -> i386 level CPU
1 -> i586 level CPU
2 -> Use the same CPU level with that of this DRBL server
Note! Note Note! Note! Note! Note! Note!
NOTE!!! If your client machine(s) is not the same level with server, please answer "0" or "1", otherwise your client machine(s) will NOT be able to boot.
If you use wrong CPU level kernel, the glibc and openssl package might use i686 or i386, the kernel might use i686, i586 or i386, which might be not suitable to all your machines.
If you are not sure, "1" is recommended, this will still have good performance and compatibility.
[1] 2
****************************************************
  1. On choisit de mettre à jour notre système Mandriva GNU/Linux:
*****************************************************.
Do you want to upgrade operating system ?
[y/N] y
*****************************************************.
1st, we upgrade the whole system...
*****************************************************. 
(...)
  1. L'installation de DRBL devrait être complète à présent.

Configurer DRBL

Configurer DRBL via le script drblpush

Pour la configuration de DRBL, on va utiliser le script de configuration interactif drblpush que met à notre disposition le projet DRBL. Il suffit donc d'exécuter la commande /opt/drbl/sbin/drblpush -i et de répondre aux différentes questions qui nous sont posées.

Voici les différentes choix que nous avons effectués aux questions de ce script de configuration:

  1. On prend connaissances des instructions d'utilisation:
Hint! When a yes/no option is available, the default value is uppercase, Ex.
 (y/N), the default is "N", when you press "Enter", it will use "N". If you are not sure which one to choose, you can just press "Enter" key.
******************************************************
Searching the installed packages for DRBL server...This might take several minutes...
Finished searching the installed packages for DRBL server.
******************************************************
------------------------------------------------------
The interactive mode let you supply the information of your DRBL environment.
------------------------------------------------------
  1. On indique le domaine DNS de notre serveur (ici: mondomaine.example.com). A remplacer par votre domaine DNS:
------------------------------------------------------
Please enter DNS domain (such as drbl.sf.net):
[drbl.sf.net] mondomaine.example.com
Set DOMAIN as mondomaine.example.com
------------------------------------------------------
  1. On définit le domaine NIS de notre serveur, qui peut faire aussi office de serveur NIS.

Comme seul le mode Clonezilla de notre serveur DRBL nous intéresse, peut importe la valeur que l'on indique ici:

------------------------------------------------------
Please enter NIS/YP domain name:
[penguinzilla] penguizilla
Set DOMAIN as penguizilla
------------------------------------------------------
  1. On définit le préfixe qui sera utilisé par DRBL pour créer automatique le hostname de nos clients. Ici on choisit le préfixe "clone" par hasard.
------------------------------------------------------
Please enter the client hostname prefix:
This prefix is used to automatically create hostname for clients. 
If you want to overwrite some or all automatically created hostnames, press Ctrl-C to quit this program now, edit /opt/drbl/conf/client-ip-hostname, then run this program again.
[localhost] clone
Set the client hostname prefix as clone
------------------------------------------------------
  1. On indique à DRBL quelle est interface réseau est utilisé pour l'accès WAN (ici eth0:1) et quelle interface est utilisé pour l'accès LAN (ici eth0). Comme indiqué précédemment, on utilise une interface virtuelle eth0:1 pour simuler l'interface utilisé pour l'accès à internet (WAN) bien que celle-ci dispose d'une adresse ip privé ! Il s'agit juste de satisfaire les prérequis exigés par le script drblpush
------------------------------------------------------
Found private IP "10.0.0.252" in eth0 on your system!
Found private IP "10.0.0.253" in eth0:1 on your system!
Configured ethernet card(s) found in your system: eth0 eth0:1
------------------------------------------------------
The public IP address of this server is NOT found.
Which ethernet port in this server is for public Internet accsess, not for DRBL connection ?
Available ethernet ports in this server:
eth0 (10.0.0.252), eth0:1 (10.0.0.253),
[eth1] eth1:1
The ethernet port you choose for the WAN connection: eth0:1
The ethernet port(s) for DRBL environment:  eth0
******************************************************
Found class A or B private IP "10.0.0.252" in eth0 for your DRBL system! 
If you want to use multicast clonezilla, you have to use private class C (192.168.*.*)! Otherwise the performance of multicast clone will be terribly worse!
******************************************************
Press Enter to continue...
******************************************************
  1. On choisit de ne pas collecter les adresses MAC de tous nos clients. En effet, dans notre scénario d'utilisation, on utilise déjà un serveur dhcp où sont consignés toutes ces adresses mac:
Now we can collect the MAC address of clients!
If you want to let the DHCP service in DRBL server offer same IP address to client every time when client boot, and you never did this procedure, you should do it now!
If you already have those MAC addresses of clients, you can put them into different group files (These files number is the same number of networks cards for DRBL service). In this case, you can skip this step.
This step helps you to record the MAC addresses of clients, then divide them into different groups. It will save your time and reduce the typos.
The MAC addresses will be recorded turn by turn according to the boot of clients,
and they will be put into different files according to the network card in server, file name will be like macadr-eth1.txt, macadr-eth2.txt... You can find them in directory /etc/drbl.
Please boot the clients by order, make sure they boot from etherboot or PXE!
Do you want to collect them ?
[y/N] N
******************************************************
OK! Let's continue...
  1. Bien que nous n'utiliserons pas le serveur dhcp installé et configuré par le script sur le serveur clonezilla, on indique à cette étape de configuration de ce serveur dhcp que l'on souhaite assigner les adresses ip dynamiquement. Nous verrons que nous allons désactiver ce serveur dhcp aussitôt ce script de configuration terminé:
Do you want to let the DHCP service in DRBL server offer same IP address to the client every time when client boots (If you want this function, you have to collectthe MAC addresses of clients, and save them in file(s) (as in the previous procedure)). 
This is for the clients connected to DRBL server's ethernet network interface eth0 ?
[y/N] N
******************************************************
OK! Let's continue, we will set the IP address of clients by "first boot gets IP first" instead of fixed one!
******************************************************
What is the initial number do you want to use in the last set of digits in the IP (i.e. the initial value of d in the IP address a.b.c.d) for DRBL clients connected to this ethernet port eth1.
[1] 1
******************************************************
How many DRBL clients (PC for students) connected to DRBL server's ethernet network interface eth0 ?
Please enter the number:
[12]
******************************************************
The final number in the last set of digits in the clients' IP is "12".
We will set the IP address for the clients connected to DRBL server's ethernet network interface eth0 as: 10.0.0.1 - 10.0.0.12
Accept ? [Y/n] Y
******************************************************
OK! Let's continue...
******************************************************
  1. On valide la configuration réseau choisit:
The Layout for your DRBL environment:
******************************************************
          NIC    NIC IP                    Clients
+-----------------------------+
|         DRBL SERVER         |
|                             |
|    +-- [eth1:1] 10.0.0.253 +- to WAN
|                             |
|    +-- [eth1] 10.0.0.252 +- to clients group 1 [ 12 clients, their IP
|                             |            from 10.0.0.1 - 10.0.0.12]
+-----------------------------+
******************************************************
Total clients: 12
******************************************************
Press Enter to continue...
******************************************************
  1. On souhaite que DRBL n'offre aucun « diskless Linux service » au client. En effet le mode serveur de client léger à la LTSP ne nous intéresse pas dans notre cas d'utilisation:
------------------------------------------------------
In the system, there are 3 modes for diskless linux services:
[0] Full DRBL mode, every client has its own NFS based /etc and /var.
[1] DRBL SSI (Single system image) mode, every client uses tmpfs based /etc and /var. In this mode, the loading and necessary disk space of server will be lighter. NOTE! 
(a) The client machine memory is recommended at least 256 MB. 
(b) The setting and config files of client will not be saved to the DRBL server! 
They are just used once and will vanish after the machine shutdowns! Besides, if you modify any file in the template client (located in /tftpboot/nodes), you have to run /opt/drbl/sbin/gen_ssi_files to create the template tarball in /tftpboot/node_root/drbl_ssi/.
(c) If you want to provide some file to overwrite the setting in the template tarball when client boots, check /tftpboot/node_root/drbl_ssi/clients/00_README for more details.
[2] I do NOT want to provide diskless Linux service to client.
Which mode do you prefer ?
[0] 2
No diskless Linux for client is the system.
******************************************************
  1. On choisit ensuite le mode Clonezilla que l'on souhaite utiliser. Ici, on opte pour le mode « Clonezilla Box Mode »
******************************************************
------------------------------------------------------
------------------------------------------------------
In the system, there are 3 modes available for clonezilla:
[0] Full Clonezilla mode, every client has its own NFS based /etc and /var.
[1] Clonezilla box mode, every client uses tmpfs based /etc and /var. 
In this mode, the loading and necessary disk space of server will be lighter than that in Full Clonezilla mode. 
Note! In Clonezilla box mode, the setting and config files of client will not be saved to the DRBL server! 
They just use once and will vanish after the machine shutdowns!
[2] I do NOT want clonezilla.
Which mode do you prefer ?
[0] 1
Clonezilla box mode is set, an elegant mode for clonezilla is on the way!
******************************************************
******************************************************
  1. On définit le répertoire sur le serveur où seront stockés les images crées. Ici, on conserve le répertoire par défaut qui est /home/partimag
------------------------------------------------------
When using clonezilla, which directory in this server you want to store the saved image (Please use absolute path, and do NOT assign it under /mnt/, /media/ or /tmp/) ?
[/home/partimag] /home/partimag
Directory for clonezilla saved images: /home/partimag
******************************************************
The clients will use text mode when they boot.
******************************************************
OK! Let's continue...
  1. On choisit de ne pas verrouiller les menus de boot offerts aux clients par un mot de passe
------------------------------------------------------
Do you want to set the pxelinux password for clients so that when client boots, a password must be entered to startup (For better security)
[y/N] n
  1. On choisit d'utiliser un menu de boot avec une image (c'est plus sympa !):
------------------------------------------------------
Do you want to use graphic background for PXE menu when client boots ?
Note! If you use graphical PXELinux menu, however client fails to boot, you 
can switch to text mode by running "/opt/drbl/sbin/switch-pxe-bg-mode -m text".
[y/N] y
Use text PXE Linux menu for client.
------------------------------------------------------
OK! Let's continue...
-----------------------------------------------------
  1. On choisit de ne pas faire de ce serveur, un serveur NAT. En effet, les 2 interfaces configurés sont dans le même sous-réseau, donc la translation d'adresses (NAT) n'a aucune utilité dans notre cas d'utilisation:
------------------------------------------------------
Do you want to let DRBL server as a NAT server ? If not, your DRBL client will NOT be able to access Internat.
[Y/n] n
This DRBL server does NOT provide NAT service, so your DRBL client will NOT
be able to access Internat.
******************************************************
  1. On finit l'installation en choisissant les options par défaut proposées:
le to access Internat.
******************************************************
Checking server kernel config "/boot/config-2.6.22.12-desktop-1mdv..."
The running kernel in the server supports NFS over TCP!
Note! If you change the running kernel in the server, and not sure whether the kernel supports NFS over udp or tcp, you'd better to re-run "drblpush -i" again to avoid the client boots in failure!
Press Enter to continue...
------------------------------------------------------
Searching installed Etherboot files for dhcpd.conf... done!
******************************************************
The calculated NETWORK for eth0 is 10.0.0.0.
******************************************************
******************************************************
We are now ready to deploy the files to system!
Do you want to continue ?
Warning! If you go on, your firewall rules will be overwritten during the setup!
The original rules will be backuped as iptables.drblsave in system config directory (/etc/sysconfig or /etc/default).
^[[0m[Y/n] Y
******************************************************
OK! Let's do it!
------------------------------------------------------
(...)

You have to use "/opt/drbl/sbin/dcs" -> clonezilla-start to start clonezilla serivce, so that there will be a clonezilla menu when client boots
*****************************************************.
Enjoy DRBL!!!
http://drbl.nchc.org.tw; http://drbl.sf.net
NCHC Free Software Labs, Taiwan. http://free.nchc.org.tw
*****************************************************.
If you like, you can reboot the DRBL server now to make sure everything is ready...(This is not necessary, just an option.).
*****************************************************.
DRBL server is ready! Now set the client machines to boot from PXE or Etherboot (refer to http://drbl.sourceforge.net for more details).
NOTE! If Etherboot is used in client machine, version 5.4.0 or newer is required!
PS. The config file is saved as /etc/drbl/drblpush.conf. Therefore if you want to run drblpush with the same config again, you may run it as: /opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf

Intégrer DRBL avec un serveur DHCP existant

Par défaut, le script drblpush de configuration de drbl considère que nous utiliserons un serveur dhcp spécifique à drbl. Pour pouvoir intégrer DRBL/Clonezilla a un serveur dhcp déjà existant, il nous suffit simplement de:

  1. Désactiver (et non désinstaller !!) le serveur dhcp installé sur le serveur clonezilla par le script d'installation drblsrv:
Image:Konsole.png
[root@ordi ~]# chkconfig --del dhcpd && service dhcpd stop
  1. Intégrer les modifs nécessaires au boot PXE dans le dhcpd.conf de notre serveur dhcp. On devrait alors avoir un dhcpd.conf de ce type (On constatera que l'on a recopier par acquis de conscience, les entrées en commentaire du fichier dhcpd.conf généré par les scripts de configuration de DRBL sur le serveur DRBL):
allow unknown-clients;
subnet 10.0.0.0 netmask 255.255.255.0   {
        range 10.0.0.2 10.0.0.10;
        option routers 10.0.0.254;
        option domain-name "mondomaine.example.com";
        option domain-name-servers 10.0.0.1;
        option nis-domain "mondomaine.example.com";
        option nis-servers 10.0.0.1;
###########################################################################
## Config DRBL/CLONEZILLA
###########################################################################
        # Option ci-dessous rajoute pour DRBL/Clonezilla
        option broadcast-address    10.0.0.255;
        option subnet-mask          255.255.255.0;
        server-name                clonezilla;
        filename = "pxelinux.0";
        next-server clonezilla.mondomaine.example.com;
        use-host-decl-names on;

## Uncomment the following "if block" when you have some buggy PXE NIC card (such as annoying sis900 NIC). Remember to modify the MAC vendor prefix and restart dhcpd service!!!
## This is a workround for some network card with BAD PXE code in firmware.
## It will only affect those clients with MAC vendor prefix you assigned.
## Ref: http://syslinux.zytor.com/archives/2005-August/005640.html

#if substring (option vendor-class-identifier, 0, 3) = "PXE" {
#     # **************************************************************
#     # ***MODIFY*** the MAC vendor prefix of client network card here.
#     # **************************************************************
#     # For annoying sis900 network card, maybe it is 00:07:95, 00:0C:6E...
#     if substring (hardware, 1, 3) = 00:0C:6E {
#         # /opt/drbl-etherboot/eb-5.4.3-etherboot-pci.zpxe is a all-in-one pxe ima
ge, works for most NIC.
#         # /opt/drbl-etherboot/sis900.zpxe is specially for sis900 NIC.
#         # Try either one.
#         #filename = "/opt/drbl-etherboot/eb-5.4.3-etherboot-pci.zpxe";
#         filename = "/opt/drbl-etherboot/sis900.zpxe";
#     }
#}

# Uncomment the following to get the debug/verbose messages in system log. The mess
ages like the following will be shown:
# Client 0:c:29:3b:34:fb requests 1:2:3:5:6:b:c:d:f:10:11:12:2b:36:3c:43:80:81:82:8
3:84:85:86:87 - PXEClient:Arch:00000:UNDI:002001 - no dhcp-client-id
# Client 0:c:29:3b:34:fb requests 1:3:6:c:f:1c:28:29:2a - DRBLClient - no dhcp-clie
nt-id
# Begin of log command
#log(info, concat("Client ",
#        binary-to-ascii(16, 8, ":", substring(hardware, 1, 6)),
#        " requests ",
#        binary-to-ascii(16, 8, ":", option dhcp-parameter-request-list),
#        " - ",
#        pick-first-value(option vendor-class-identifier, "no vendor-id"),
#        " - ",
#        pick-first-value(option dhcp-client-identifier, "no dhcp-client-id"))
#   );
# End of log command

# This class 'DRBL-Client' defines 3 kind of clients: PXE, Etherboot (1st stage) or
 DRBL client (2nd stage, i.e. in network initrd/initramfs (mkpxeinitrd-net)) to lea
se IP address.  This will only affect 'range' statement only, not the 'host' statem
ent.
# Note! The following line(s) in the pool statement: 'allow members of "DRBL-Client
";' is/are commented to disable this mechanism by default.
# If you do want to use this mechanism, uncomment all 'allow members of "DRBL-Clien
t";', then only PXE, etherboot and DRBL client can lease IP address from this DHCP
service.
# ///NOTE/// In summary, two cases you can turn on this mechanism:
# (1) This DRBL server is not used as a clonezilla server.
# (2) This DRBL server is used as a Clonezilla server, with the following condition
s:
#     (a) 'range' statement is used in this DRBL service.
#     (b) There is an existing DHCP service which can provide IP address leases to
the restored OS (either GNU/inux or MS Windows) in the client. Otherwise if you unc
omment 'allow members of "DRBL-Client";', restored OS won't be able to lease IP add
ress.

# The DRBL client class: PXE, Etherboot or DRBL client
class "DRBL-Client" {
  match if
  (substring(option vendor-class-identifier, 0, 9) = "PXEClient") or
  (substring(option vendor-class-identifier, 0, 9) = "Etherboot") or
  (substring(option vendor-class-identifier, 0, 10) = "DRBLClient") ;
}

###########################################################################
## FIN Config DRBL/CLONEZILLA
###########################################################################

###########################################################################
## Association @MAC <-> @IP
###########################################################################
   host pc060 {
            hardware ethernet 00:0C:34:56:78:09;
            fixed-address 10.0.0.60;
            }
   host pc061 {
            hardware ethernet 00:0C:34:56:78:08;
            fixed-address 10.0.0.61;
            }
#(...)
}
  1. Modifier le fichier /etc/exports généré par les scripts de configuration de DRBL. En effet, par défaut, le montage via NFS du root du système par les client n'est autorisé que pour les adresses ip de la plage définit précédemment durant l'exécution du script drblpush. Par souçi de simplicité, on va donc autoriser le montage des partitions adéquates par tous les clients du LAN en remplaçant l'intégralité du contenu de /etc/exports tel que généré par drblpush:
# Generated by DRBL at 19:43:29 2008/01/04
/tftpboot/node_root 10.0.0.1(ro,sync,async,no_root_squash,subtree_check)
/usr 10.0.0.1(ro,sync,async,no_root_squash,subtree_check)
/opt 10.0.0.1(ro,sync,async,no_root_squash,subtree_check)
/home 10.0.0.1(rw,sync,async,no_root_squash,no_subtree_check)
/var/spool/mail 10.0.0.1(rw,sync,async,root_squash,no_subtree_check)
/home/partimag 10.0.0.1(rw,sync,async,no_root_squash,no_subtree_check)

/tftpboot/node_root 10.0.0.10(ro,sync,async,no_root_squash,subtree_check)
/usr 10.0.0.10(ro,sync,async,no_root_squash,subtree_check)
/opt 10.0.0.10(ro,sync,async,no_root_squash,subtree_check)
/home 10.0.0.10(rw,sync,async,no_root_squash,no_subtree_check)
/var/spool/mail 10.0.0.10(rw,sync,async,root_squash,no_subtree_check)
/home/partimag 10.0.0.10(rw,sync,async,no_root_squash,no_subtree_check)
#(...) Et ainsi de suite...
Par les seules directives suivantes qui autorisent le montage des répertoires suivants via NFS à tous les client du LAN:
/tftpboot/node_root 10.0.0.0/24(ro,sync,async,no_root_squash,subtree_check)
/usr 10.0.0.0/24(ro,sync,async,no_root_squash,subtree_check)
/opt 10.0.0.0/24(ro,sync,async,no_root_squash,subtree_check)
/home 10.0.0.0/24(rw,sync,async,no_root_squash,no_subtree_check)
/var/spool/mail 10.0.0.0/24(rw,sync,async,root_squash,no_subtree_check)
/home/partimag 10.0.0.0/24(rw,sync,async,no_root_squash,no_subtree_check)

Configuration DRBL spécifique à Mandriva

  • Désinstaller le paquet harddrake: Afin d'éviter que les partitions déjà existantes sur les disques durs des clients soient automatiquement montés par le service harddrake au boot. Ce montage automatique et inopportun à évidemment pour effet de faire échouer le processus de restauration des images ! Pour pallier ce problème, il suffit de désinstaller sur le serveur clonezilla, le paquet harddrake en exécutant la commande:
Image:Konsole.png
[root@ordi ~]# urpme harddrake
  • Désactiver le pare-feu shorewall: Pour éviter les problèmes de connectivé liés aux règles de filtrage du pare-feu, on va désinstaller le pare-feu shorewall qui est installé par défaut sous Mandriva Linux ! Il suffit pour cela de:
    • Désactiver le service shorewall:
Image:Konsole.png
[root@ordi ~]# service shorewall stop && chkconfig --del shorewall
    • De vider les règles de filtrage mises en place par shorewall:
Image:Konsole.png
[root@ordi ~]# shorewall clear
    • Désinstaller le paquet shorewall:
Image:Konsole.png
[root@ordi ~]# urpme shorewall

Utiliser Clonezilla

Configuration avançée de Clonezilla

Protéger le menu PXE par un mot de passe

Le menu PXE par défaut /tftpboot/nbi_img/pxelinux.cfg/default crée par clonezilla est généré depuis le script /opt/drbl/sbin/generate-pxe-menu. Il est généré plus précisément depuis les lignes de ce script commençant par
#(...)
#
echo "Adding menus for DRBL, local boot, memtest86+, FreeDOS..."
cat <<-PXE_END > $PXELINUX_DIR/default
# Created by generate-pxe-menu! Do NOT edit unless you know what you are doing!
# Keep those comment "MENU DEFAULT" and "MENU HIDE"! Do NOT remove them.
# Note!!! If "serial" directive exists, it must be the first directive
#(...)

Pour modifier donc définitivement le menu PXE par défaut qui est généré, il suffit donc de modifier le contenu du script !

Donc pour protéger certaines entrées du menu PXE par un mot de passe, il suffit donc:

  1. Générer manuellement le hash md5 du mot de passe que l'opn souhaite via la commande openssl. Ici, le hash obtenu est la suite de caractères commençant par « $1$ » :
Image:Konsole.png
[root@ordi ~]# openssl passwd -1

Password:
Verifying - Password:
$1$5u3namYo$X0xuyv8UfQ6ReuIri5NOV/

  1. Ajouter dans /opt/drbl/sbin/generate-pxe-menu, une entrée de type « MENU MASTER PASSWD » avec comme valeur le hash obtenu précédemment mais où on aura pris le soint « d'échapper » les caractères jokers tel que le caractère « $ ». Pour l'ensemble des options de menu de pxelinux, cf http://syslinux.zytor.com/menu.php:
#(...)
# MENU MASTER PASSWD
#(moi): Notre mot de passe maître au format md5 utilise
#+ pour certaines entrees
MENU MASTER PASSWD \$1\$N9bjqYHM\$aqqXi075cTmS9buXI8jAu1

say **********************************************
say Welcome to DRBL.
say NCHC Free Software Labs, Taiwan.
say http://drbl.nchc.org.tw; http://drbl.sf.net
say **********************************************

#(...)
  1. Ajouter dans /opt/drbl/sbin/generate-pxe-menu, dans une option de type « MENU PASSWD » dans tous les entrées « Label » que l'on souhaite protéger par mot de passe. Ainsi, si on souhaite protéger par un mot de passe, l'entrée permettant de lancer une sauvegarde/restauration des clients, il suffit d'ajouter l'option « MENU PASSWD » dans le « label clonezilla »:
#(...)
label clonezilla
  MENU HIDE
  MENU LABEL Clonezilla
  # MENU PASSWD
  #(moi): Un mot de passe indispensable pour amorcer client sur clonezilla
  MENU PASSWD
  kernel vmlinuz-pxe
  append initrd=initrd-pxe.img devfs=nomount drblthincli=off selinux=0 1 $CONSOLE_OUTPUT $clonezilla_mode_opt $drbl_dist_append

#(...)
  1. Regénérer le menu PXE en exécutant le script /opt/drbl/sbin/generate-pxe-menu. NB: Le menu PXE est aussi automatiquement regénéré à chaque fois que l'on relance clonezilla via le script /opt/drbl/sbin/dcs :
Image:Konsole.png
[root@ordi ~]# /opt/drbl/sbin/generate-pxe-menu

Intégrer automatiquement les clients MS Windows a un domaine Windows NT =

Pour intégrer automatiquement les cliens windows au domaine il faut utiliser drbl winroll et netdom (tests réalisés sur client win XP pro)

Winroll : http://www.drbl-winroll.org/=

  • 1 A quoi sert drbl-winRoll
    • - 1.1 Permettre au clients Windows de recevoir les commandes d'un serveur DRBL
    • - 1.2 Résoudre le problème du nommage des postes lors d'un clonage de systèmes windows sur un réseau local
    • - 1.3 Renommer automatiquement le groupe de travail suivant l'adressage réseau ou domaine
    • - 1.4 Renouveller le SID windows
    • - 1.5 Ne permet pas de modifier le domaine

Il faut donc installer winroll sur le poste client windows servant d'image.

Ensuite il faut Windows XP Service Pack 2 Support Tools(http://www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en) Une fois installer le répertoire est c:\"Program Files"\"Support Tools"\

La commande netdom join nom_computer /domaine:nom_domaine /userd:nom_admin_domaine /passwordd:passe_admin_domaine va nous permettre de rejoindre le domaine. Nous l'utiliserons plus tard.

Winroll install cygwin et la commande netdom n'étant pas reconnue dans la console cygwin, il va falloir l'ajouter. http://cs.nyu.edu/~yap/prog/cygwin/FAQs.html#execute Il faut donc lancer la console cygwin (Démarrer, tous les programmes, cygwin, cygwin) puis créer un lien symbolique vers netdom.exe

Image:Konsole.png
[root@ordi ~]# cd /usr/local/bin
ln -s /cygdrive/c/"Program FILES"/"Support Tools"/netdom.exe .

Maintenant que la commande est ajoutée il faut modifier le fichier c:/cygwin/bin/Autohostname.sh Attention ne pas le modifier dans windows. Utiliser un vi sur linux

Voici les lignes du fichier autohostname.sh à modifier : Tout en bas du fichier rajouter la ligne : "netdom join $COMPUTERNAME /domain:nom_Domaine /userd:root_user /passwordd:password_user" où nom_Domaine = votre domaine, root_user = utilisateur et password_user=mot de passe

  1. Check if any service be lock, perpare to reboot,

if [ "$NEED_TO_CHANGE" = "1" ]; then
touch $WINROLL_TMP/$REBOOT_FLAG;
echo `date` "$SERVICE_NAME: set rboot flag:" | tee -a $WINROLL_LOG
waiting_to_reboot;
netdom join $COMPUTERNAME /domain:DOMAIN /userd:USER /passwordd:password
reboot -r 10;
echo `date` "$SERVICE_NAME: do reboot:" | tee -a $WINROLL_LOG
fi
--bulan geoffrey 16 mai 2009 à 08:20 (UTC)geoffrey bulan

Ajouter des entrées supplémentaires dans le menu PXE de Clonezilla

L'ajout d'entrée supplémentaire permanente dans le menu PXE par défaut généré par clonezilla est très similaire à l'ajout d'un mot de passe pour les entrées du menu PXE

Par exemple, imaginons que nous voulons ajouter une entrée pour démarrer via le boot PXE, l'installation de Mandriva Linux par le réseau (alias « netinstall ») . Pour cela, il suffit:

  1. Préparer les fichiers de l'installateur Mandriva permettant de faire une installation réseau (alias « netinstall ») dans l'arborescence du serveur tftp:
    1. Télécharger le noyau linux vmlinuz et le stage1 de l'installateur drakx all.rdz indispensable pour effectuer une netinstall. Ces fichiers sont disponibles sur les mirroirs ftp dans le dossier official/<version>/<architecture>/isolinux/alt0/ de l'arborescence d'une mirroir ftp mandriva (par ex: ftp://ftp.free.fr/pub/Distributions_Linux/MandrivaLinux/official/2008.0/i586/isolinux/alt0/)
    2. Déplacer ces fichiers dans la un sous-dossier situé à la racine du serveur tftp de clonezilla (à savoir /tftpboot/nbi_img/):
Image:Konsole.png
[root@ordi ~]# mkdir -p tftpboot/nbi_img/distributions/mandriva/2008.0/i586

cp all.rdz vmlinuz /tftpboot/nbi_img/distributions/mandriva/2008.0/i586

  1. Ajouter dans le script /opt/drbl/sbin/generate-pxe-menu, une entrée permettant de lancer l'installateur Mandriva pour une netinstall:
  label netinstall-mandriva
  # MENU HIDE
  MENU LABEL Netinstall Mandriva Linux
  #(moi): Un mot de passe est necessaire pour booter netinstall mandriva
  MENU PASSWD
  kernel mandriva/2008.0/i586/vmlinuz
  append initrd=mandriva/2008.0/i586/all.rdz
  1. Tester !