Postes en réseau sans disque dur, sans disquette...
Avec cartes mêres, processeurs, de la RAM et cartes réseaux.
Serveur Etherboot sur une Mandrake 10.1
I) Prérequis :
Résumer :
Installer de la MDK 10.1 :
kernel-2.6.8.1.12mdk
kernel-source-2.6-2.6.8.1-12mdk <------
Pour les im nbi
kernel-2.6.11.6mdk (De la MDK 10.2)
que j'utilise
kernel-source-2.6-2.6.11-6mdk (De la MDK 10.2) que
j'utilise
dhcp-client
dhcp-common
dhcp-server
clusternfs
terminal-server
etherboot
tftp-server
mkinitrd-net
<--- devra être mis à jour
car la busybox est compilé(e) avec de mauvaises options pour
udhcpc.
La
mise à jour de mkinitrd-net peut être faite avec le
paquetage de la MDV 2006.0, ce qui fait passer la version de
1.10-19mdk à 1.10-24mdk.
La version udhcpc de
mkinitrd-net-1.10-24mdk provoque un "warning, m" mais pas
un "error, m" du mkinitrd-net-1.10-19mdk ce qui laisse
alors votre terminal monter ses racines sur nfs...
Configurations :
La Config du serveur : /etc/dhcpd.conf :
#dhcpd.conf
- generated by drakTermServ
ddns-update-style none;
default-lease-time 172800;
max-lease-time 172800;
subnet
192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option broadcast-address
192.168.1.255;
option domain-name "system-linux.net";
range dynamic-bootp 192.168.1.100 192.168.1.130;
option
domain-name-servers 192.168.1.1;
}
# Include client
machine configurations
include
"/etc/dhcpd.conf.etherboot.clients";
# Include
Etherboot definitions and defaults
include
"/etc/dhcpd.conf.etherboot.include";
# Include
Etherboot default kernel version
include
"/etc/dhcpd.conf.etherboot.kernel";
dhcpd.conf.etherboot.*
Sont générés par terminal-server
(drakTermServ)...
Le dhcpd.conf.etherboot.clients est
trés important c'est ce fichier qui dira quelle adresse MAC
aura quelle IP et sur quelle noyaux réseau elle bootera !
#
dhcpd.conf.etherboot.client généré par
drakTermServ
host
satellite {
hardware ethernet 00:14:2a:3e:ee:cb;
fixed-address
192.168.1.254;
#type thin;
if substring (option
vendor-class-identifier, 0, 9) = "PXEClient"
{
filename "via-rhine.zimg.pxe";
}
else if
substring (option vendor-class-identifier, 0, 9) = "Etherboot"
{
filename "boot-via-rhine.2.6.11-6mdk.nbi";
}
#hdw_config true;
}
Pour
que cela soit téléchargé sur le terminal c'est
TFTP1
qui intervient avec xinetd....
Dans /etc/xinetd.d/tftp
#
Service TFTP
service tftp
{
disable = no
socket_type
= dgram
protocol = udp
wait = yes
user = root
server
= /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
Aprés
ceci le PC boot... jusqu'a ce qu'il plante au montage NFS !
C'est
içi que clusternfs intervient ! Il à la paricularité
de lire dans /etc/exports les caractères $$...
Pourquoi ?
Pour que les clients aient une config particulière à
chacun....
Mon /etc/exports :
/ 192.168.1.0/255.255.255.0(ro,no_root_squash)
/home 192.168.1.0/255.255.255.0(rw,root_squash)
/etc/sysconfig/mouse$$IP=192.168.1.254$$ 192.168.1.254(rw,no_root_squash)
/etc/modules.conf$$IP=192.168.1.254$$ 192.168.1.254(rw,no_root_squash)
/etc/modules$$IP=192.168.1.254$$ 192.168.1.254(rw,no_root_squash)
/etc/modprobe.conf$$IP=192.168.1.254$$ 192.168.1.254(rw,no_root_squash)
/etc/modprobe.preload$$IP=192.168.1.254$$ 192.168.1.254(rw,no_root_squash)
/etc/X11/XF86Config$$IP=192.168.1.254$$ 192.168.1.254(rw,no_root_squash)
/etc/X11/XF86Config-4$$IP=192.168.1.254$$ 192.168.1.254(rw,no_root_squash)
/etc/X11/xorg.conf$$IP=192.168.1.254$$ 192.168.1.254(rw,no_root_squash)
/etc/sysconfig/i18n$$IP=192.168.1.254$$ 192.168.1.254(rw,no_root_squash)
/mnt/cdrom$$CLIENT$$ 192.168.1.254(rw,no_root_squash)
Il
faut aussi faire des copies de :
/etc/passwd
/etc/shadows
/etc/group
en
/etc/passwd$$IP=192.168.1.254$$
/etc/shadows$$IP=192.168.1.254$$
/etc/group$$IP=192.168.1.254$$
En réalité draTermServ crée des fichier
/etc/quelquechose$$CLIENT$$. Lorsque qu'avec drakTermServ vous crée
un client lègé avec une IP=192.168.1.XX Tous les
fichiers /etc/quelquechose$$CLIENT$$ sont reproduits en
/etc/quelquechose$$IP=192.168.1.XX$$
ATTENTION
: en console cp /etc/quelquechose$$CLIENT$$
/etc/quelquechose$$IP=*******$$ ne fonctionne pas car il faut mettre
cp /etc/quelquechose\$\$CLIENT\$\$
/etc/quelquechose\$\$IP\=*******\$\$
On arrive au login
console et/ou KDM, GDM....
Mais là cela plante !!!!
(peut-être) Chez moi oui cela plantait !
Sur le serveur
etherboot j'ai une carte vidéo GeForce II et pas sur le
portable... Donc plantage !
Soluce : Un live CD.
Réccupération sur clef USB (ex) de
/etc/X11/XF86Config-4 et /etc/X11/XF86Config.
Un :
cp
/mnt/removable/XF86Config-4
/etc/X11/XF86Config-4\$\$IP\=192.168.1.254\$\$
cp
/mnt/removable/XF86Config
/etc/X11/XF86Config\$\$IP\=192.168.1.254\$\$
ln -s
/etc/X11/XF86Config-4\$\$IP\=192.168.1.254\$\$
/etc/X11/xorg.conf\$\$IP\=192.168.1.254\$\$
J'ai
modifié mon /etc/initab\$\$IP\=192.168.1.254\$\$ pour être
en init 3.
# /etc/inittab$$IP=192.168.1.254$$
# created by drakTermServ
id:3:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Things to run in every runlevel.
ud::once:/sbin/update
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/reboot -f
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
# Connect to X server
#x:5:respawn:/usr/X11R6/bin/X -ac -query 192.168.1.1
login:zterminal01
(on peut ainsi voir si le z est à Z ou X, et les chiffres déjà
activés)
password:******
login(pam_unix)[2116]:
session opened for user zterminal01 by LOGIN(uid=0)
--
zterminal01[2116]: LOGIN ON tty1 BY zterminal01
Içi dans les ~/.bash_login j'ai mis une commande qui lance Xtart (modifié : Xtart-term)
#.bash_login
/usr/bin/Xtart-zterm
Cela donne donc le choix à l'utilisateur de lancer KDE....
Ensuite si une application métier sur l'intranet dans doit être lancée alors la lancer par ~/.kde/Autostart/
J'ai crée une application qui lance un navigateur (firefox) sur la page « application metier ». Firefox ayant l'extension KIOSK, l'utilisateur ne peut accèder à autre chose que l'application metier.
[Desktop Entry]
Comment=
Comment[fr]=
Encoding=UTF-8
Exec=/logical-disk/data/SOURCES/firefox/firefox http://www.system-linux.net/egroupware
GenericName=
GenericName[fr]=
Icon=exec
MimeType=
Name=
Name[fr]=
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=
X-KDE-SubstituteUID=false
X-KDE-Username=
Nous
sommes logué !!!!
![]()
III) Conclusion :
C'est la configuration la plus satisfaisante que j'ai eu à réaliser. Car elle englobe la connaissance du noyaux, des réseaux (dhcpd, ethernet...), de X et de ses multiples (innombrables?) possibilités, NFS....
Bref
à réaliser ne serait-ce que pour le fun !
1A ne pas confondre avec un serveur FTP !!!
Postes en réseau sans disque dur, sans disquette...
Avec cartes mêres, processeurs, de la RAM et cartes réseaux.