Page suivantePage pr�c�denteTable des mati�res

3. Pr�paration du serveur

3.1 Compiler un noyau

Il faut pr�voir le n�cessaire pour supporter root sur nfs. Voici les �tapes :

  1. Comme nous utilisons une RedHat 5.2 avec le noyau 2.2, il faut s'assurer que notre distribution est pr�te pour ce noyau. RedHat fournit un excellent HowTo � ce sujet.
  2. J'utilise le m�me noyau pour le serveur et les stations pour �viter les conflits vu qu'ils partagent le m�me r�pertoire /lib/modules. Si ce n'est pas possible dans votre situation, produisez diff�rentes versions en �ditant le num�ro de version au d�but du Makefile. Ces num�ros diff�rents devraient �viter les confilts.
  3. En plus des options habituelles, le noyau devrait supporter :
  4. Il faut �diter ensuite les sources du noyau pour changer le montage root-over-NFS par d�faut : /tftpboot/<ip>/root au lieu de /tftpboot/<ip>, de fa�on � avoir une arborescence propre sous /tftpboot avec un r�pertoire par station contenant son r�pertoire racine (un lien vers la racine du serveur en fait) et ses r�pertoires sp�cifiques.
  5. Il reste � compiler le noyau comme d'habitude (cf Kernel-HowTo).
  6. Si vous n'avez pas encore de noeud /dev/nfsroot, cr�ez-le :
    mknod /dev/nfsroot b 0 255
  7. Apr�s avoir compil� le noyau, changez la racine en tapant :
    rdev <path-to-zImage>/zImage /dev/nfsroot
  8. Avant de booter avec devfs, vous devez modifier conf.modules : ajoutez le contenu du fichier conf.modules de la documentation de devfs au conf.modules du syst�me.
  9. Ce nouveau noyau est compil� avec la configuration automatique de l'adresse IP, mais cela va �chouer lors du boot du serveur puisque c'est lui-m�me qui donne les adresses IP. Pour �viter une trop longue attente, ajouter : append="ip=off" � la section linux de /etc/lilo.conf.
  10. relancez lilo et bootez sur le nouveau noyau.
  11. avec devfs, sur le serveur, vous allez perdre tous les liens qui existaient. Sur RedHat, c'est le plus souvent /dev/mouse et /dev/cdrom. Recr�ez-les. Remettez �galement vos propri�t�s personnalis�es si vous avez l'habitude d'avoir des particularit�s sur certaines entr�es de /dev. Ensuite enregistrez ce param�trage de /dev (sous /etc/sysconfig puisque c'est d�pendant du type de machine) ainsi :

3.2 Cr�ation et remplissage de /tftpboot, cr�ation des liens vers /tmp etc.

La partie automagique

Tout cela est pris en charge par le script ci-dessous. Si on veut le faire manuellement, il suffit de suivre le script pas a pas.

Ce script effectue des actions un peu os�es telles que supprimer /tmp, arr�ter temporairement syslog, d�monter /proc. Donc assurez-vous d'abord que personne n'utilise la machine pendant ce temps, et que X ne tourne pas. Il n'est pas n�cessaire de changer de niveau d'ex�cution, si vous �tes s�r d'�tre le seul connect� et sur une console en mode texte.

D�ni : ce script a �t� test� mais s'il provoque un plantage du serveur, vous �tes seul responsable. Je ne prends aucune responsabilit� quoi qu'il arrive. Je r�p�te que ce HowTo est fait pour des administrateurs exp�riment�s. De plus ce script est fait pour �tre lanc� une fois et une seule. Le lancer une seconde fois endommagera /etc/fstab, /etc/X11/XF86Config, /etc/X11/X et /etc/conf.modules.

Ceci dit, copiez-collez ce script et rendez le ex�cutable, puis ex�cutez-le.


#!/bin/sh
SERVER_NAME=`hostname -s`
###
echo creating /etc/rc.d/rc.ws
#this basicly just echos the entire script ;)
echo "#root on nfs stuff
SERVER=$SERVER_NAME
# on a besoin de proc pour mtab, route, etc.
mount -t proc /proc /proc
IP=\`ifconfig eth0|grep inet|cut --field 2 -d ':'|cut --field 1 -d ' '\`
# si le premier montage echoue, c'est qu'on est probablement
# sur le serveur, ou bien que quelque chose ne va pas.
# donc on ne fait la suite que si le premier montage est reussi
mount \$SERVER:/tftpboot/\$IP/sysconfig /etc/sysconfig -o nolock &&
{
 # autres montages
 mount \$SERVER:/home /home -o nolock
 mount \$SERVER:/ /\$SERVER -o ro,nolock
 # creation de /var
 echo Creating /var ...
 mke2fs -q -i 1024 /dev/ram1 1024
 mount /dev/ram1 /var -o defaults,rw
 cp -a /tftpboot/var /
 # configuration reseau
 . /etc/sysconfig/network
 HOSTNAME=\`cat /etc/hosts|grep \$IP|cut --field 2\`
 route add default gw \$GATEWAY
 ifup lo
}
# restauration des p�riph�riques install�s
/etc/rc.d/rc.devfs restore /etc/sysconfig
umount /proc" > /etc/rc.d/rc.ws
###
echo splitting runlevel 3 for the client and server
mv /etc/rc.d/rc3.d /etc/rc.d/rc3.server
cp -a /etc/rc.d/rc3.server /etc/rc.d/rc3.ws
rm /etc/rc.d/rc3.ws/*network
rm /etc/rc.d/rc3.ws/*nfs
rm /etc/rc.d/rc3.ws/*nfsfs
rm /etc/rc.d/rc3.ws/S99local
ln -s /etc/sysconfig/rc.local /etc/rc.d/rc3.ws/S99local
ln -s /etc/rc.d/rc3.server /etc/sysconfig/rc3.d
ln -s /etc/sysconfig/rc3.d /etc/rc.d/rc3.d
###
echo making tmp a link to /var/tmp
rm -fR /tmp
ln -s var/tmp /tmp
###
echo moving various files around and create symlinks for them
echo mtab
/etc/rc.d/init.d/syslog stop
umount /proc
touch /proc/mounts
mount /proc
/etc/rc.d/init.d/syslog start
rm /etc/mtab
ln -s /proc/mounts /etc/mtab
echo fstab
mv /etc/fstab /etc/sysconfig
ln -s sysconfig/fstab /etc/fstab
echo X-config files
mkdir /etc/sysconfig/X11
mv /etc/X11/X /etc/sysconfig/X11
ln -s ../sysconfig/X11/X /etc/X11/X
mv /etc/X11/XF86Config /etc/sysconfig/X11
ln -s ../sysconfig/X11/XF86Config /etc/X11/XF86Config
echo conf.modules
mv /etc/conf.modules /etc/sysconfig
ln -s sysconfig/conf.modules /etc/conf.modules
echo isapnp.conf
mv /etc/isapnp.conf /etc/sysconfig
ln -s sysconfig/isapnp.conf /etc/isapnp.conf
###
echo creating a template dir for the ws directories
echo /tftpboot/template
mkdir /home/tftpboot
ln -s home/tftpboot /tftpboot
mkdir /tftpboot/template
mkdir /$SERVER_NAME
echo root
ln -s / /tftpboot/template/root
echo sysconfig
cp -a /etc/sysconfig /tftpboot/template/sysconfig
rm -fR /tftpboot/template/sysconfig/network-scripts
ln -s /$SERVER_NAME/etc/sysconfig/network-scripts \
 /tftpboot/template/sysconfig/network-scripts
echo NETWORKING=yes > /tftpboot/template/sysconfig/network
echo `grep "GATEWAY=" /etc/sysconfig/network` >> /tftpboot/template/sysconfig/network
echo "/dev/nfsroot / nfs defaults 1 1" > /tftpboot/template/sysconfig/fstab
echo "none /proc proc defaults 0 0" >> /tftpboot/template/sysconfig/fstab
echo "#!/bin/sh" > /tftpboot/template/sysconfig/rc.local
chmod 755 /tftpboot/template/sysconfig/rc.local
rm /tftpboot/template/sysconfig/rc3.d
ln -s /etc/rc.d/rc3.ws /tftpboot/template/sysconfig/rc3.d
rm /tftpboot/template/sysconfig/isapnp.conf
echo var
cp -a /var /tftpboot/var
rm -fR /tftpboot/var/lib
ln -s /$SERVER_NAME/var/lib /tftpboot/var/lib
rm -fR /tftpboot/var/catman
ln -s /$SERVER_NAME/var/catman /tftpboot/var/catman
rm -fR /tftpboot/var/log/httpd
rm -f /tftpboot/var/log/samba/*
for i in `find /tftpboot/var/log -type f`; do cat /dev/null > $i; done
rm `find /tftpboot/var/lock -type f`
rm `find /tftpboot/var/run -type f`
echo /sbin/fsck.nfs
echo "#!/bin/sh
exit 0" > /sbin/fsck.nfs
chmod 755 /sbin/fsck.nfs
echo all done

Ajustements manuels

  1. Le script de configuration des stations doit �tre ex�cut� au tout d�but de rc.sysinit, donc il faut ajouter les lignes suivantes apr�s avoir d�fini le PATH :
    # pour les stations montant root par NFS
    /etc/rc.d/rc.ws
    

  2. R�duisez /etc/rc.d/rc3.ws � un minimum. Il peut �tre utile de cr�er un rc.local.ws, � vous de voir. R�seau et nfs sont d�ja configur�s. Voici d'ailleurs la liste de ce qui a d�j� �t� enlev�/mis � jour par le script :

3.3 Export des syst�mes de fichiers appropri�s et configuration de bootp

Export des syst�mes de fichiers

Par exemple ici � l'Universit�, j'ajouterai ceci � /etc/exports :


/ *.st.hhs.nl(ro,no_root_squash)
/home *.st.hhs.nl(rw,no_root_squash)

Remplacez les noms de domaine par les v�tres et relancez NFS :

/etc/rc.d/init.d/nfs restart

Pour les utilisateurs de knfsd : il n'est pas possible d'avoir plusieurs exports d'une partition avec des permissions diff�rentes. De m�me, knfsd ne permet pas de changer de partition (par exemple si un client monte /, et /usr est sur une autre partition, le client n'aura pas acc�s � /usr). Ainsi, si vous utilisez knfsd, il faudra qu'au moins /home soit sur une partition diff�rente ; le script de pr�paration du serveur a mis /tftpboot sous /home : il ne n�cessite pas une partition suppl�mentaire. Si vous voulez acc�der � d'autres partitions depuis vos clients, exportez les s�par�ment et ajoutez les lignes de montage correspondantes dans /etc/rc.d/rc.ws.

Configurer bootp

  1. Si bootp n'est pas encore install�, c'est le moment de le faire. Il est inclus dans la RedHat.
  2. Editez /etc/inetd.conf et supprimez le commentaire sur la ligne commen�ant par bootp ; si vous utilisez une bootprom, enlevez �galement le commentaire pour tftp.
  3. Red�marrez inetd :
    /etc/rc.d/init.d/inetd restart


Page suivantePage pr�c�denteTable des mati�res

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