You are on page 1of 8

Replicator : Outil dinstallation automatique de Debian/GNU-Linux

Par Sbastien Chaumat, sebastien.chaumat@ens-lyon.fr, Loic Prylli, loic.prylli@ens-lyon.fr


Ecole Normale Suprieure de LYON

Rsum : Replicator est une boite outils permettant dinstaller et administrer sous Debian, un rseau de machines, ventuellement htrogne au niveau matriel. Replicator prend en charge de manire non interactive, le processus dinstallation. Il se base autant que possible sur la duplication des fichiers dune machine modle, limitant le travail de configuration au strict minimum (tout en laissant la possibilit dindividualiser la configuration des machines cibles) et offrant une vitesse dinstallation apprciable. Ce logiciel est utilis pour linstallation de grappes de calcul (clusters), de postes de travail et de clients lgers.

1. Introduction
La gestion dun parc de machines important ncessite de frquentes installations ou rinstallations de machines. Ces installations peuvent demander un temps dintervention important suivant la mthode utilise, le choix de cette mthode va faire intervenir diffrents types de compromis, entre les possibilits dindividualisation de la configuration des machines, lhtrognit du parc en terme de matriel (famille du CPU, taille disque, ), le temps dapprentissage et de mise en place des outils dadministration pour lensemble du parc, et le temps ncessaire linstallation de chaque machine. Le choix de la stratgie mise en oeuvre est souvent principalement limit par les outils dadministration disponibles. Nous prsentons dans ce document un logiciel: Replicator facilitant les installations et rinstallations dun parc de machines tournant toutes sous un systme dexploitation de type GNU-Linux. Cet outil a t conu pour prendre un compte un parc htrogne, dune part en terme darchitecture interne (machines base de PowerPC, Alpha, ou x86), et dautre part en termes dutilisation et de configuration (serveurs, ou noeuds de calcul avec console sur port sries, postes de travail, chaque catgorie se dcomposant nouveau entre machines sans disques, avec peu de disques, ou machines largement autonomes). Notons que seules les machines accessible par un rseau local sont supports, le rseau tant le principal prrequis pour les noeuds administrs. Ce logiciel est conu comme une bote outils permettant de sadapter une large gamme de situations, en essayant de fournir une solution aussi simple daccs que possible pour le cas le plus courant dun ensemble de postes de travail administrer. Replicator est pour linstant li la distribution Debian, choisie pour le large ventail de plateformes matrielles supports (Powerpc, Sparc, Alpha, x86), pour sa vocation gnraliste vis--vis du type dutilisation, et pour son mode dorganisation reposant sur une trs large communaut de contributeurs (mlangeant individus, associations et compagnies privs) garantissant sa prnit. Nanmoins, Replicator repose essentiellement sur des standards respects par toutes les distributions Linux, et pourrait donc sadapter dautres distribution (voir dautres UNIX, mais ce ne serait pas aussi trivial). Si Replicator facilite linstallation des machines, il ne dispense pas davoir pralablement dfini la stratgie dadministration rseau (volumes NFS, automonteur ventuel, base dutilisateurs partag par NIS ou tout aute systme, ventuellement un serveur DHCP), et reste indpendant des choix fait par ladministrateur. Cet article va prsenter les principes de base de Replicator, les diffrents aspects de son fonctionnement et de son dveloppement. Nous dcrirons enfin la mise en oeuvre typique pour un site. 1.1 Historique Replicator est issu dun ensemble de scripts, destins au dpart grr des noeuds de calculs pour les machines parallles du Laboratoire de lInformatique et du Paralllisme (LIP) de lcole Normale Suprieure de Lyon (ENSL). Il a plus tard t intgr et gnralis pour rpondre aux besoins dinstallation de postes de travail du Laboratoire de Physique. Cest un logiciel cr initialement pour rpondre un besoin local de lENS-Lyon, et dvelopp en interne, maintenant mis disposition sous forme de logiciel libre.

489

Outil et techniques dadministration systmes et rseaux

2. Principes de base
Replicator reste indpendant de tout format de paquets, il travaille directement au niveau de larborescence de fichiers dune machines Unix, partir densemble de fichiers modles. Trois machines interviennent dans ce problme : la machine modle (ex: un poste client pralablement install et configur de manire classique), les machines cibles (ex: des ordinateurs neuf frachement dball), le serveur de rplication, sur lequel est install le logiciel de rplication. Dans le cas le plus simple on peut installer le logiciel de rplication sur la machine modle (ainsi le modle et le serveur de rplication sont confondus ce quon supposera dans la suite). Replicator sattache automatiser autant que possible la duplication de la configuration logicielle de la machine modle vers la machine cible, tout en sadaptant des configurations matrielles compltement diffrentes (la machine cible peut-tre sans disque, ou avec une simple partition root , alors que la machine modle est autonome du point de vue stockage). Replicator va se composer de diffrents outils pour : crer des disquettes de boot, crer des arborescences destines aux stations sans disques (monts par NFS), ou crer larborescence utilis lors de linstallation (monte par NFS), ainsi que des scripts de replication et de configuration des machines cibles proprement dits. 2.1 Stratgies de rplication des donnes Installer massivement un systme dexploitation, au travers dun rseau, revient globalement dposer sur le disque des machines cibles un ensemble dinformations quasiment identiques provenant dune machine modle. On peut considrer ces informations selon trois niveaux ce qui mne trois stratgies diffrentes dont la flexibilit va en raison inverse de leur vitesse. Nous indiquons ici les alternatives utiliss par les diffrents outils dadministration rseau pour situer le choix particulier de la stratgie de Replicator. 2.1.1 Copie dimages disques Cest la mthode la plus rapide car le logiciel dinstallation na pas se soucier de la structure des informations en terme de fichier ou de paquet. Le logiciel Ghost de Symantech fonctionne sur ce principe. Avantages : Trs rapide. La cohrence en terme de paquet est facilement garantie Inconvnients : Lunit de configuration (le fichier) est smantiquement trs loigne de lunit de rplication (le bit), Ne permet pas priori de sadapter facilement des tailles de disque dur varies et des partionnements diffrents 2.1.2 Copie de fichiers Un peu moins rapide, cette mthode impose au logiciel de rplication de garantir la cohrence des ensembles de fichiers (qui doivent former des paquets au sens de la distribution Linux). Avantages : le partitionement des disques du modle et de la cible nont pas tre identique, la vitesse de rplication reste trs leve, lunit de configuration et lunit de rplication sont identiques tous les outils lmentaires ncessaires une telle opration existent dj sous Linux. Inconvnients : Il faut maintenir la cohrence de la distribution Linux en terme de paquets. 2.1.3 Distribution de la base de donne de configuration des paquets Cest la mthode propos par la plupart des distributions Linux (RedHat et Suse entre autre). Il sagit de rejouer linstallation complte de la distribution en fournissant au systme dinstallation la liste de paquets installer ainsi que la configuration de chaque paquet. Pour tre prcis ce sont les rponses aux questions des assistants de configuration qui sont propages.

490

Outil et techniques dadministration systmes et rseaux

Avantages : la cohrence en terme de paquets est assure, la distribution de linformation sur les paquets est aise pourvue quelle soit stocke initialement dans une base de donnes. Inconvnients : extrmement lent compar aux autres mthodes, il faut disposer dune source de paquets en plus dune source de donnes de configuration, lunit smantique de rplication est le paquet, lunit de configuration est la rponse la question de lassistant de configuration. 2.1.4 Comparaison - Stratgie implmente dans Replicator Replicator implmente la mthode de copie des fichiers car elle reprsente le meilleur compromis entre la vitesse et la flexibilit. Cest aussi celle qui offre la plus grande simplicit dimplmentation. Dune part on peut sappuyer sur le logiciel rsync, dautre part elle ne ncessite pas de modification de la structure de la distribution Debian et de ses paquets. En effet la mthode de copie de base de donne de configuration est en cours dimplmentation dans la future Debian 3.0 mais elle na toujours pas donn de rsultats satisfaisant malgr la modification du systme de configuration des paquets. Lintelligence de Replicator consiste en grand partie dans la connaissance des ensembles de fichier qui relve de la configuration de site et qui doivent tre dupliqu, ceux qui relvent de la configuration matrielle et qui sont normalement gnr automatiquement par Replicator, et ceux qui relvent dune configuration spcifique chaque machine (typiquement nom de machine, et configuration IP), et qui sont pris en charge par Replicator de manie semi-automatise en suivant les instructions de son fichier de configuration. titre de comparaison, 45 minutes ont suffi pour l installation du site suivant : Un serveur Apache/Mysql/Php install et configur la main selon la mthode standard (soit environs 240Mo), 45 minutes dinterracivit. 12 postes clients pour lves de lyce (KDE2, Malpe, Matlab, StarOffice) (700Mo) avec Replicator. 2 minutes dinterractivit par poste. 2.2 Oprations de pr-rplication 2.2.1 Dtection du matriel Pour effectuer la rplication il faut au minimum avoir correctement dtect le disque dur de la cible et sa carte rseaux. La rapidit de la rplication dpend fortement de loptimisation des accs disques et rseaux. Sous Linux Replicator utilise lutilitaire mii-diag pour contrler le mode de fonctionnement de la carte rseaux et lutilitaire hdparm pour loptimisation des accs aux disques durs IDE. Sur un rseaux 100Mbps le facteur limitant est la vitesse daccs au disque dur. Sur un rseau 10Mbps cest le dbit de linterface rseaux qui limite sauf si le pilotage du disque dur nest pas correctement optimis (mode PIO 16 bits par exemple). 2.2.2 Choix du clavier Il nexiste toujours pas de moyen de dtection automatique du type de clavier de la cible. Soit il est slectionn par avance lors de la configuration de loutil de rplication, soit il faut demander lutilisateur de prciser le type du clavier juste avant de dmarrer la rplication. 2.2.3 Partionnement du disque de la cible Il sagit de lopration la plus dlicate. Un partitionnement automatique est envisageable pour une machine cible vierge. Sil existe des donnes prserver sur le disque cible (un autre systme dexploitation o des donnes utilisateur dans une partition spare (/home)), il faut soit un repartionnement non destructif (trs difficile automatiser sans risque), soit un repartionnement manuel, soit pas de repartionnement du tout (rinstallation de Linux sur des machines multiboot par exemple).

491

Outil et techniques dadministration systmes et rseaux

2.2.4 Formatage des partitions Cela va de paire avec le partitionnement. Si lon souhaite prserver des partitions, on doit non seulement prserver leur bornes dans la table dallocation mais on doit aussi viter de les reformater. contrario, dans le cas dune rinstallation avec prservation dune partition utilisateur (/home), il faut pouvoir indiquer clairement au logiciel de rplication quelles partitions il doit reformater et lesquelles il doit prserver. 2..3 Oprations de post-rplication Ces oprations sont optionnelles et dpendent fortement du site o est effectue la rplication. On peut citer : la gnration de paires de clefs publiques/prives pour ssh, linitialisation NIS+ (qui ncessite la saisie dun mot de passe), la rgnration automatique dindex non rpliqus. Ainsi il est plus commode de permettre lutilisateur dcrire lui-mme son script de post-rplication. 2.4 Oprations flottantes Il sagit des oprations de configuration qui peuvent avoir lieu avant o aprs la rplication des donns.Dans le cas dune copie dimage disque, puisquil nexiste pas de systme de fichier cohrent avant la rplication, la configuration ne peut intervenir quen post-rplication. Pour la stratgie en fichiers les oprations suivantes sont flottantes. Leur position dans le processus dinstallation est laiss au choix du dveloppeur. Typiquement les fichiers de configuration suivants sont susceptibles dtre rgnrs : /etc/fstab : description des points de montage et des priphriques/partitions associs (ncessite davoir effectuer partitionnement et formatage) /etc/hosts, /etc/hostname : gnralement adresse IP et nom de la machine cible (ncessite davoir fourni le nom de la cible au logiciel de rplication) /etc/lilo.conf : et plus gnralement la configuration du bootloader (chargeur du systme dexploitation) /etc/X11/XF86Config : la configuration du serveur X-window en fonction du matriel disponible.

3 Mode de dveloppement
3.1 Choix de la licence Pour pouvoir prtendre lincorporation dans la distribution Debian, un logiciel doit se conform aux Principe du logiciel libre selon Debian (Debian Free Software Guidelines DFSG [DSFG]). Nous avons donc choisis la Licence Publique Gnrale (General Public Licence [GPL]) de la Free Software Foundation (FSF) car elle est en accord avec ces principes et la vocation de mise disposition de ce logiciel. La disponibilit du code de Replicator rapidement permis nos utilisateur de lamliorer et de nous fournir leur modifications que nous navons pas manquer dincorporer.

492

Outil et techniques dadministration systmes et rseaux

3.2 Choix du langage Replicator est entirement crit en Perl. Perl est un langage de script peu structur et trs facile apprhender. Ainsi une nouvelle ide peut tre transforme en code en quelques minutes (de mme que les corrections de bogues). Cest donc un langage commode pour le dveloppement rapide. videment cela peut conduire facilement du code sale et illisible. Nanmoins le dveloppeur Perl peut loisir structurer son code. Ainsi, on peut obtenir, aprs dfinition des fonctions en entte du fichier, un script dont le coeur se rduit :

unless ($fast) { $base = &ask_for_base until $base; &install_base; $debs = &ask_for_debs until $debs; &install_debs; &update_config; &set_miniroot_pwd; if ($multi_install) {&mirror_tree;} rhs_msgbox(Finished,>repli-miniroot has sucessfully created the nfsroot filesystem. Don\t forget to export $nfsroot for your copies >with options: rw,no_root_squash\n,80); rhs_msgbox(Warning,>If you remove replicator from your system, the filesystem under >$nfsroot >will not be removed automatically. > >You will have to delete it by hand.\n,80); } else { &update_config ; if ($multi_install) {&mirror_tree}; }
De cette flexibilit est n le cycle de dveloppement suivant : nous codons rapidement avec un minimum de contraintes nos nouvelles ides. Nous les testons intensivement puis, une fois quelles sont valides, nous restructurons le code. Ainsi le code actuel na-t-il plus grand chose a voir dans sa forme avec les scripts initiaux bien que le principe fonctionnement de Replicator na que peu dvi de son architechture initiale. 3.3 Outils de travail collaboratif Pour coordonner notre travail, nous utilisons le logiciel CVS (Concurent Version System) et linfrastructure propos par VA Linux Systems au travers de son site SourceForge (qui hberge plus de 25000 projets OpenSource). CVS permet de grer le plus automatiquement possibles les modification apportes par plusieurs contributeur sur un mme fichier source. Lorsque des modification entrent en conflit, ce dernier est notifi aux programmeurs qui doivent alors se concerter. Systme de suivi de bogues La distribution Debian jouit dune excellente rputation de stabilit et de qualit. Cette rputation, non usurpe, doit beaucoup au systme de suivi de bogue qui permet une excellente prise en charge de ceux-ci. La fonctionnalit la plus intressante de se systme, est mon sens, le retrait automatique de la distribution des logiciels auxquels sont assign des bogues graves. Ainsi le mainteneur dun paquet Debian (qui dans le cas de Replicator est aussi un des auteur) est plus que fortement incit agir pour la rsolution des bogues.

493

Outil et techniques dadministration systmes et rseaux

3.4 Plates-formes de dveloppement Plutt que de mobiliser plusieurs ordinateurs pour les tests de Replicator, nous utilisons le logiciel Vmware afin de simuler plusieurs machines virtuelles au sein dun seul PC. La licence dutilisation de ce logiciel nous t fournie par lcole Normale Suprieure de Lyon. Afin de suivre lvolution de la distribution Debian, nous utilisons la version testing de la distribution. Cette distribution, lorsquelle sera stabilis (i.e elle ne comportera plus aucun bug critiques), sera officiellement la nouvelle version stable de Debian GNU/Linux.

4. Mise en oeuvre de Replicator


4.1 Fonctionnement Les tapes suivantes sont ncessaires : Sur le serveur de replication, une seule fois : 1. Installation de Replicator sur le serveur de replication, 2. Configuration de Replicator, 3. Cration dun systme de fichier racine (appell la miniroot) export par NFS destination des machines cibles, avec la commande repli-miniroot, 4. Compilation dun noyau monolithique contenant les pilotes de disques durs et de carte rseaux pour toutes les cibles. 5. Crtion dune disquette damorcage utilisant ce noyau avec la commande repli-bootdisk. Sur le modle, une seule fois : 1. Ouverture de lacces rsync (il suffit de dposer le fichier de configuration rsyncd.conf fourni avec Replicator, puis de dmare rsync en mode daemon). Sur chaque machine cible : 1. Amorage sur la disquette cre prcdement. 2. Dans linterface de Replicator : choisir le clavier, confirmer le partionnement automatique ou effectuer un partionnement manuel, confirmer la replication. 3. Prendre un expresso (pas le temps pour un caf long). Dtaillons prsent quelques unes de ces tapes. 4.1 Installation Pour une distribution testing (et donc pour la prochaine distribution stable) un simple apt-get install replicator suffit. Pour la distribution stable actuelle (nom de code potato), il faut rcuprer le paquet disponible sur sourceforge. 4.2 Configuration de base Les fichiers de configuration sont regroup dans le rpertoire /etc/replicator/. Pour une utilisation simple de Replicator, un seul fichier est modifier: replicator.conf. Dans ce fichier on indique principalement : lemplacement de la miniroot (variable $nfsroot) lemplacement du noyau monolithique pour lamorage des cibles la liste et la configuration rseaux des cibles IP fixe (rien configurer pour des clients dhcp) le partionnement souhait des cibles ou le passage en partionnement manuel avec la table de formatage

494

Outil et techniques dadministration systmes et rseaux

4.3 Configuration avance En cas de besoin il est possible de crer un fichier de configuration par machine cible (replicator.conf_cible). Celui ci sera charg par Replicator aprs le fichier gnral replicator.conf. Ainsi on peut facilement ajuster la configuration pour des cibles non standard (par exemple changer les choix de partionnement pour tenir compte dun espace disque restreint) . Lutilisateur peux aussi modifier la liste des fichiers qui doivent tre inclus ou exclus de la rplication. En particulier la configuration de Lilo (le chargeur du systme dexploitation) et la table de montage (/etc/fstab) ne serons pas rgnrs par Replicator si lutilisateur force leur rplication. Cela savre utile dans le cas dinstallation sur des cibles strictement identiques. 4.4 cration de la miniroot Cette opration nest priori ralise quune fois, de manire interactive, grce au script repli-miniroot. Les modifications ultrieures de la configuration de Replicator (sur le serveur de rplication), doivent tre propages dans la miniroot (pour les rendre accessibles aux cibles en cours dinstallation) laide de la commande repli-miniroot -u. 4.5 Noyau de boot Comme expliqu prcdement, il faut disposer dun moyen de dtection et de gestion de tous les disques dur et de toutes les cartes rseaux des machines cibles. La technique la plus commode consiste compiler un noyau linux monolithique contenant tous les pilotes ncessaires ainsi que la capacit de montage du systme de fichier racine via NFS. Cette tape est la plus contraignante actuellement dans la mise en oeuvre de Replicator bien quelle ne prsente peu de difficult technique. 4.6 Rplication Pour faciliter les diffrences entre machines, Replicator peut sutiliser conjointement avec cfengine, ou des scripts bass sur rsync, permettant dadapter un certain nombre de fichiers de configurations de manire fine. Une facilit est fournie par Replicator pour spcifier par groupe ou de manire individuelle la liste des daemons qui doivent tre prsents sur la machine 4.7 Mises jour du modle : synchronisation Lorsque le modle subit une mise jour mineure (par exemple linstallation dun nouveau paquet), on peut resynchroniser les cibles en utilisant la commande repli-sync. Il faut cependant noter que, contrairement la mise jour dun paquet Debian, cette technique ne permet pas de redmarrer un dmon automatiquement. Une bonne solution consiste rejouer le processus dinitialisation de la cible (en clair: redmarrer tous les services du runlevel actuel).

5. Les premires utilisations connues de Replicator


5.1 Clusters 5.1.1 Clunix Il sagit dun cluster situ lcole Polytechnique. Une excellente documentation en ligne sur la construction dun cluster mentionne Replicator comme loutils de choix dans ce genre de ralisation. 5.1.2 LIP lENS-LYON Plusieurs clusters totalisant une cinquantaine de machines mlangeant des PowerPC, Alpha et x86 sont grs avec Replicator. 5.2 Le laboratoire de physique de lENS Lyon Ce laboratoire compte aujourdhui une trentaine de postes sous Debian GNU/Linux gr avec Replicator. 5.3 Les salles lves du Lyce de la Martinire Il sagit de postes clients pour les lves de classe prparatoire. Il disposent dun environnement de bureau KDE2, des logiciels de calcul Maple Matlab ainsi que de la suite bureautique StarOffice.

495

Outil et techniques dadministration systmes et rseaux

5.4 La bibliothque universitaire de Barcelone Une centaine de clients lgers destination des usagers de la bibliothque, sont installs par les bibliothcaires partir des disquettes prpares par ladministrateur rseau.

6. Conclusion et perspectives
Replicator est un outil dinstallation/rinstallation rapide de machines complmentaire par rapport aux outils existants. En effet les outils existants sont gnralement bass soit des images compltes prdfinies du systme, qui vont servir dans le cadre dun ensemble de machines homognes, soit sur lautomatisation du procd dinstallation normale dune distribution donn, laide dune base de variables de configuration. Par contraste Replicator repose sur la dcomposition de lensemble des fichiers prsents sur une machine entre un ensemble gnrique, un ensemble spcifique la configuration matrielle, et un ensemble individualis. Ce dernier ensemble peut tre personalis pour chaque site. Replicator nest pas li au mode de paquets dune distribution donne, prend en charge lautomatisation des installations partir dun modle, et par consquent ne ncessite pas lapprentissage dune nouvelle mthode de mta-configuration des machines. Enfin pour les machines cibles, il permet de traiter de manire uniforme les logiciels contenus dans la distribution utilis et les logiciels qui ont t rajouts manuellement. Dans les cas relativement simples, lutilisation de Replicator ne ncessite pratiquement aucun apprentissage particulier pour lautomatisation des installations. La configuration de chaque machine tant simplement issue de ladministration individuelle de la machine modle, Replicator maximise linvestissement fait dans lapprentissage de la configuration individuelle dune machine. Il permet une transition en douceur pour les administrateurs habitus installer individuellement quelques machines sans aucune automatisation, et devant faire face la gestion dun parc plus important ou voulant simplifier leur tche. Dans la cadre dun rseau relativement complexe, comportant des groupes varis de machines, Replicator sassocie utilement un mcanisme de gestion distribu des fichiers de configuration (bas sur cfengine ou rsync par exemple), pour faciliter le travail de ladministrateur rseau. Dautre part lensemble des comportements de Replicator peuvent tre finement controls en modifiant le fichier de configuration par dfaut pour sadapter une trs grande diversit de situations.

496

Outil et techniques dadministration systmes et rseaux

You might also like