Page suivantePage pr�c�denteTable des mati�res

3. Cr�er le r�pertoire racine du client

3.1 Cr�ation de l'arborescence

Tout d'abord, vous devez cr�er la structure des r�pertoires elle-m�me. J'ai cr�� tous mes clients dans le r�pertoire /clients/hostname et je l'utilise pour tous les exemples suivants. Cela peut toutefois �tre remplac� par n'importe quoi d'autre. La premi�re �tape, est donc de cr�er les r�pertoires appropri�s sur la racine. Vous devez cr�er les r�pertoires suivants :

bin, dev, etc, home, lib, mnt, proc, sbin, serveur, tmp, usr, var
et tous les autres r�pertoires que vous souhaitez avoir sur votre syst�me.

Les r�pertoires locaux proc et dev doivent �tre distincts pour chaque machine alors que le reste des r�pertoires peut �tre soit en partie soit compl�tement partag� avec les autres clients.

3.2 Cr�ation d'un syst�me de fichier minimal pour le boot

Cr�er le r�pertoire dev.

Bien que le r�pertoire dev puisse �tre partag�, il est pr�f�rable d'en cr�er un diff�rent pour chaque client. Vous pouvez cr�er le r�pertoire dev de votre client avec le script MAKEDEV appropri�, cependant dans la plupart des cas, il est plus simple de le recopier � partir du serveur :

cp -a /dev /clients/hostname

Vous devez garder � l'esprit que /dev/mouse, /dev/cdrom et /dev/modem sont des liens vers les p�riph�riques courants, il faut donc s'assurer qu'ils sont correctement reli�s pour correspondre au mat�riel du client.

Copier les ex�cutables indispensables.

Bien que nous montons tout � partir du serveur, il y a un minimum que vous devez recopier pour chaque client. Avant tout, vous avez besoin de "init", car votre syst�me ne sera pas capable de faire marcher quoi que ce soit avant de s'�tre initialis� (l'auteur l'a difficilement trouv� ;-). Donc premi�rement, vous devez copier /sbin/init dans le r�pertoire sbin de votre client ensuite, pour que le fichier rc.S puisse �tre lanc�, vous devez copier /bin/sh dans le r�pertoire binaire de votre client. Ensuite, de mani�re � monter tout ce dont vous avez besoin, vous devez copier /sbin/mount dans le r�pertoire sbin de votre client. C'est le minimum, � partir du moment ou la premi�re ligne de votre rc.S (rc.sysinit pour une distribution redhat) est mount -av.

Cependant, je recommande de copier quelques autres fichiers : update, ls, rm, cp et umount comme cela, vous aurez les outils minimum au cas ou le client � des probl�mes de montage. Si vous choisissez d'utiliser votre swap avant de monter la racine, vous devez �galement copier l'ex�cutable swapon.

Bien que la plupart de ces ex�cutables ont eu une �dition des liens dynamique, vous devez aussi copier une petite partie de /lib :

cp -a /lib/ld.* /lib/libc.* /lib/libcurses.* /client/hostname/lib

N.d.T. : sur certaines distributions (en particulier RedHat) ce sont les fichiers /lib/libtermcap* qu'il faut recopier � la place de /lib/libcurses.* selon la fa�on dont sont compil�s les ex�cutables.

Mettre des liens durs vers les fichiers eux-m�mes, au lieu de les copier, est une solution � consid�rer. Relisez mes commentaires � ce sujet dans la partie 2.1 de ce Howto.

Veuillez remarquer que toutes les informations pr�c�dentes supposent que le noyau ai obtenu tous les param�tres lors du boot. Si vous pensez utiliser rarp ou bootp, vous aurez probablement besoin des fichiers qui leurs correspondent.

G�n�ralement, vous aurez besoin du minimum de fichiers qui vous permettent de configurer le r�seau et d'ex�cuter rc.S (ou rc.sysinit sur Redhat) jusqu'au moment ou est mont� le reste du syst�me de fichier. Assurez-vous que vous avez v�rifixi�e vos fichiers /etc/init et rc.S, v�rifiez qu'il n'y a pas de "surprises" ou quoi que ce soit d'autre qui aurait besoin d'acc�der � d'autres fichiers, avant que le premier montage ait lieu. Si vous le faites toutefois, retrouvez ces fichiers, vous pouvez soit les recopier �galement, soit enlever les parties correspondantes de vos fichiers init ou rc.S.

Le r�pertoire var

Le r�pertoire var, dans la plupart des cas, doit �tre s�par� pour chaque client. Cependant, bon nombre des donn�es peuvent �tres partag�es. Cr�ez dans le r�pertoire /serveur, un r�pertoire appel� var. Nous recopierons le r�pertoire var du serveur � cet endroit. Pour cr�er le r�pertoire var local, tapez simplement :

cp -a /var /clients/hostname

Maintenant, vous pouvez choisir ce que vous voulez s�parer, et ce que vous voulez partager. Pour tout r�pertoire/fichier que vous voulez partager, enlevez-le simplement du r�pertoire var du client, et mettez un lien symbolique vers le r�pertoire /serveur/var. Cependant, vous remarquerez que vous pouvez mettre un lien symbolique vers /serveur/var ou vers ../serveur/var mais surtout PAS vers /clients/hostname/serveur/varpuisque cela ne marchera plus lorsque la racine aura chang�.

G�n�ralement, je recommande de s�parer /var/run, /var/lock, /var/spool et /var/log.

Le cas des autres r�pertoires

3.3 Construire le r�pertoire etc et configurer le client

Remarque - cette section traite de la fa�on de cr�er un r�pertoire etc qui est principalement s�par� entre les clients. Si votre station diskless a des administrateurs syst�mes diff�rents, il est pr�f�rable de faire un r�pertoire etc s�par� pour chaque client.

Mettre un grand r�pertoire etc

Bien que nous s�parions les r�pertoires etc des clients, nous souhaitons toujours partager une bonne partie des fichiers de cet endroit. D'une fa�on g�n�rale, je pense que partager les fichiers de etc avec le r�pertoire /etc du serveur est une mauvaise id�e, et c'est pourquoi je recommande de cr�er un r�pertoire /clients/etc, qui contiendra les informations dont les clients ont besoin. Pour commencer, recopier simplement le contenu de /etc du serveur vers le r�pertoire /client/etc.

Vous devrez ajouter � ce r�pertoire tous les fichiers de configuration qui ne d�pendent pas de la machine, par exemple motd, issue, etc. mais aucun de ceux d�pendant du client (i.e. inittab ou fstab)

Les changements les plus importants doivent �tre faits dans le r�pertoire rc.d. Premi�rement, vous devez changer rc.inet1 pour qu'il corresponde � votre param�trage local. Je passe tous mes param�tres r�seau au noyau avec LILO/Loadlin, c'est pourquoi j'ai enlev� presque tout de mon fichier rc.inet1. La seule chose que j'ai laiss�, est le ifconfig et la route vers l'entr�e localhost. Si vous utilisez rarp ou bootp, vous devez en tenir compte lors de la cr�ation du fichier.

Deuxi�mement, vous devez �diter le fichier rc.S. D'abord, enlever toutes les parties qui sont responsable d'une recherche d'erreur avec fsck, puisque fsck aura lieu alors que le serveur est d�j� d�marr�. Ensuite, vous devez trouver la ligne ou est mont� votre fstab. Cela doit ressembler � :

mount -avt nonfs

Le -t nonfs. est jusque l� normal puisque les client lancent en premier rc.S et seulement apr�s rc.inet1 pour configurer l'Ethernet. Mais comme cette ligne ne va pas monter les partitions NFS, elle doit �tre d�truite. Il faut ensuite la remplacer par un mount -av . Si vous avez besoin d'utiliser rarp/bootp pour configurer votre r�seau, faites le dans rc.S (ou appelez le script appropri� dans rc.S), avant de monter, et assurez vous que les r�pertoires bin et sbin contiennent les fichiers n�cessaires.

Apr�s que le mount -av ait �t� accompli, vous devez avoir un syst�me de fichier op�rationnel. Cr�ez un fstab g�n�rique, que vous pourrez recopier sur chaque client.

Votre fstab doit ressembler � :

serveur:/clients/hostname    /               nfs     default  1 1
serveur:/bin                 /bin            nfs     default  1 1
serveur:/usr                 /usr            nfs     default  1 1
serveur:/sbin                /sbin           nfs     default  1 1
serveur:/home                /home           nfs     default  1 1
serveur:/lib                 /lib            nfs     default  1 1
serveur:/clients/etc         /serveur/etc    nfs     default  1 1
serveur:/clients/var         /serveur/var    nfs     default  1 1
none                         /proc           proc    default  1 1
Veuillez remarquer, que le mot cl� _default_ ne doit pas fonctionner avec toutes les versions de mount. Vous devrez alors le changer en _rw_ ou _ro_ ou enlever toute la partie _default 1 1_ .

Assurez vous �galement que sur votre serveur le /etc/exports ressemble � :

/clients/hostname   hostname.domainname(rw,no_root_squash)
/clients/etc        hostname.domainname(ro,no_root_squash)
/clients/var        hostname.domainname(ro,no_root_squash)
/usr                hostname.domainname(ro,no_root_squash)
/sbin               hostname.domainname(ro,no_root_squash)
/bin                hostname.domainname(ro,no_root_squash)
/lib                hostname.domainname(ro,no_root_squash)
/home               hostname.domainname(rw,no_root_squash)

Mise � part la premi�re ligne qui doit �tre diff�rente pour chaque client, les autres lignes peuvent �tre remplac�es par un masque pour s'appliquer � tout vos clients (comme pc*.domain - gardez � l'esprit, que * se substitue uniquement aux cha�nes de caract�res ne contenant pas de point). Je propose de mettre la majorit� des r�pertoires en lecture seule ro, mais c'est � vous de choisir. Le no_root_squash assure que le super-utilisateur aura sur les clients les permissions correspondantes avec nfsd. Jetez un coup d'oeil au man exports(5). Si vous souhaitez que vos utilisateurs puissent utiliser passwd �galement � partir des clients, assurez-vous que /etc ai les permissions rw et non ro. Toutefois faites comme vous le souhaitez.

Vouz remarquerez aussi, en ce qui concerne le fichier rc.S que sur la Slackware, par d�faut, un fichier /etc/issue et /etc/motd sont cr��s � chaque ex�cution. Cette fonction DOIT �tre d�sactiv�e si ces fichiers sont mont�s en ro � partir du serveur, je recommande de les d�sactiver dans tous les cas.

Pour terminer, si vous voulez avoir une base d'utilisateurs commune � votre serveur et vos clients, vous pouvez choisir entre 1), utiliser NIS (lire le NIS-Howto), et ainsi, chaque client aura un /etc/passwd et /etc/group s�par� puisqu'il les recevra du serveur. 2) Dans la plupart des cas, un lien symbolique suffira. Pour cela, vous pourrez soit mettre un lien dur de /client/etc/passwd vers /etc/passwd, ou si vous pr�f�rez un lien symbolique, reliant /etc/passwd vers /client/etc/passwd (et pas dans l'autre sens puisque le client ne monte pas le r�pertoire etc du serveur). Faire de m�me avec /etc/group

Cr�er le r�pertoire etc du client

G�n�ralement, la plupart des fichiers du r�pertoire etc du client doivent avoir des liens symboliques vers /serveur/etc. Toutefois, certains fichiers sont diff�rents pour chaque machine, et certains doivent �tre l� lorsque le noyau est charg�. Le minimum dont vous avez besoin dans le r�pertoire etc est :

resolv.conf
hosts
inittab
rc.d/rc.S
fstab

Puisque ces 5 fichiers peuvent �tres identiques sur les clients, vous pouvez simplement les recopier ou mettre des liens durs. Cependant, il est judicieux de garder les fichiers fstab et rc.S diff�rents pour chaque client. Vous devez �galement s�parer etc/HOSTAME pour chaque client. Personnellement, je recommande d'avoir les fichiers de rc.d distincts pour chaque client puisque la configuration et le mat�riel peuvent varier d'une machine � l'autre.

Pour chaque client, ajouter dans la fstab la ligne swap appropri�e :

/dev/swap_partition                             swap     swap   default 1 1

Pour le reste des fichiers de /etc du client, vous pouvez soit mettre des liens durs vers /clients/etc/* , ou mettre des liens symboliques vers /serveur/etc (qui est l'endroit o� est mont� /clients/etc).

Assurez-vous que votre machine peut r�soudre correctement, soit par named ou gr�ce � etc/hosts. Ce n'est pas une mauvaise id�e de garder l'adresse IP du serveur dans /etc/hosts, plut�t que de compter sur la r�solution. Si vous comptez uniquement sur la r�solution de noms, un probl�me avec named emp�chera vos clients de booter.

3.4 Booter la machine

Maintenant que vous avez fait tout ce qu'il faut pour d�marrer votre machine, croisez vos doigts et priez pour que tout marche comme il faut :-)


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:31