Gentoo - Guide LTSP
1.
Introduction
LTSP : qu'est-ce que c'est ?
LTSP est l'abréviation de « Linux Terminal Server Project » (projet
de serveur de terminaux Linux). Une fois installé sur un serveur, il peut
fournir des environnements identiques à plusieurs stations de travail. Toutes
les applications tournent sur le serveur, ce qui vous permet de réutiliser de
vieux PC en les convertissant en terminaux X. Cela réduit les coûts et la
maintenance, surtout dans un milieu dans lequel chaque station doit avoir un
environnement de travail identique, par exemple dans une école ou une grande
entreprise.
2.
Installation
Préliminaires
Tous les exemples de ce document supposent que l'adresse IP de votre serveur
est 192.168.0.254, que votre nom de domaine est mondomaine.com et que votre
réseau d'adresses IP est 192.168.0.0/24.
Installation
Premièrement, vous devez déjà avoir un système Gentoo fonctionnel. Pour cela,
veuillez lire le manuel d'installation de Gentoo pour votre architecture sur
le site de documentation de Gentoo.
Ensuite, continuons par l'étape la plus facile, installer LTSP :
Exemple de code 2.1 : Installer LTSP |
# emerge ltsp
|
Les dépendances suivantes seront installées :
-
XFree : Devinez pourquoi ça s'appelle un terminal « X » :)
-
DHCP : DHCP est un protocole de configuration automatique
pour les ordinateurs utilisant TCP/IP, utilisé par LTSP pour assigner
les adresses IP aux stations.
-
NFS : NFS est un protocole permettant l'accès à un disque
dur distant via le réseau qui est utilisé par LTSP pour monter un système de
base sur les stations.
-
TFTP : TFTP est un protocole simple de transfert de
fichiers qui est utilisé par LTSP pour transférer le noyau de démarrage aux
stations.
-
XINETD : Xinetd est un remplaçant puissant de inetd avec
des caractéristiques avancées qui est utilisé par LTSP pour lancer TFTP.
Note :
Si vous avez "kde" ou "gnome" dans votre variable USE, cela installera un
système KDE ou GNOME complet.
|
3.
Configuration
Une fois qu'emerge a fini son travail, tous les services doivent alors être
configurés :
Journal système
Pour analyser les problèmes plus facilement, le système de journalisation doit
être configuré pour accepter les connexions distantes. Veuillez lire sa
documentation (man syslog par exemple) pour savoir comment faire. Par
exemple, si vous utilisez sysklogd, il vous suffit d'éditer le fichier
/etc/conf.d/sysklogd et d'ajouter « -r » à la ligne
SYSLOGD :
Exemple de code 3.1 : /etc/conf.d/sysklogd |
SYSLOGD="-m 0 -r"
KLOGD="-c 3 -2"
|
NFS
L'étape suivante est d'éditer votre fichier /etc/exports, afin de
permettre aux stations de monter leur système de fichiers racine. Il devrait y
avoir au moins deux lignes :
Exemple de code 3.2 : /etc/exports |
/opt/ltsp-4.1/i386 192.168.0.0/255.255.255.0(ro,no_root_squash,async)
/var/opt/ltsp/swapfiles 192.168.0.0/255.255.255.0(rw,no_root_squash,async)
|
Note :
Vous devez modifier l'adresse et le masque pour que cela corresponde à
l'adresse et au masque de votre réseau.
|
Maintenant, lancez NFS :
Exemple de code 3.3 : Lancement de NFS |
# rc-update add nfs default
# /etc/init.d/nfs start
|
xinetd/tftp
TFTP a besoin d'être configuré pour qu'il puisse fonctionner correctement.
Tout d'abord, éditez le fichier /etc/conf.d/in.tftpd pour définir
les options correctes et le chemin vers les fichiers servis par tftpd :
Exemple de code 3.4 : /etc/conf.d/in.tftpd |
INTFTPD_PATH="/tftpboot"
INTFTPD_OPTS="-s ${INTFTPD_PATH}"
|
L'option -s indique à TFTP qu'il doit tourner dans un environment
« chrooté » (recommandé). Cela signifie aussi que vous ne devrez pas
spécifier le chemin /tftpboot dans la configuration de DHCP.
Ensuite, configurez xinetd pour qu'il lance TFTP et qu'il accepte les
connexions distantes. Par défaut, TFTP n'est pas lancé par xinetd. Éditez le
fichier /etc/xinetd.d/tftp et remplacez disable=yes par
disable=no. Si le fichier n'existe pas, créez le fichier et recopiez
l'exemple ci-dessous.
Exemple de code 3.5 : /etc/xinetd.d/tftp |
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
}
|
Ensuite, éditez le fichier /etc/xinetd.conf et commentez la ligne
only_from = localhost en la faisant débuter par un #.
Enfin, lancez xinetd.
Exemple de code 3.6 : Lancement de xinetd |
# rc-update add xinetd default
# /etc/init.d/xinetd start
|
Résolution des noms
Afin que la station puisse atteindre n'importe quelle machine, il lui faut un
serveur DNS valide. Il y a plusieurs façons de résoudre ce problème. La
première est de configurer un serveur DNS sur le réseau local ; la
deuxième (plus simple) est d'avoir un fichier /etc/hosts identique
sur chaque station. Nous utiliserons la deuxième méthode.
Toutes les stations doivent être listées dans le fichier
/etc/hosts. Voici un exemple :
Exemple de code 3.7 : /etc/hosts |
127.0.0.1 localhost
192.168.0.254 serveur serveur.mondomaine.com
192.168.0.1 station01 station01.mondomaine.com
|
Configuration DHCP
C'est l'étape la plus compliquée à mon avis. Vous devez créer une configuration
DHCP (/etc/dhcp/dhcpd.conf) correcte. En voici un exemple :
Exemple de code 3.8 : dhcpd.conf |
default-lease-time 21600;
max-lease-time 21600;
use-host-decl-names on;
ddns-update-style ad-hoc;
allow booting;
allow bootp;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.254;
option domain-name-servers 192.168.0.254;
option log-servers 192.168.0.254;
option domain-name "mondomaine.com";
option root-path "192.168.0.254:/opt/ltsp-4.1/i386";
filename "/lts/vmlinuz-2.4.26-ltsp-2";
next-server 192.168.0.254;
#option option-128 code 128 = string;
#option option-129 code 129 = text;
#option option-128 e4:45:74:68:00:00;
#option option-129 "NIC=ne IO=0x300";
shared-network WORKSTATIONS {
subnet 192.168.0.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.0.1 192.168.0.16;
#host ws001 {
# hardware ethernet 00:E0:06:E8:00:84;
# fixed-address 192.168.0.1;
#}
}
}
|
Si vos stations supportent le PXE, vous devriez lister chacune d'entre elles de
la même manière que nous l'avons fait pour host ws001 (n'oubliez pas de
décommenter). Ne leur donnez pas une adresse comprise dans l'intervalle
d'adresses IP dynamiques spécifié ci-haut, car sinon plusieurs stations
pourraient obtenir la même adresse IP (ce qui poserait des problèmes).
Attention, si vous faites un copier/coller de cet exemple, veillez à bien
remplacer « // » des commentaires par « ## » car sinon dhcp
ne démarrera pas.
Pour plus d'informations à ce propos, vous pouvez lire le manuel
officiel de DHCP : http://www.dhcp-handbook.com/.
Maintenant, lancez DHCP :
Exemple de code 3.9 : Lancement de DHCP |
# rc-update add dhcp default
# /etc/init.d/dhcp start
|
Note :
DHCPD a besoin des options CONFIG_PACKET et CONFIG_FILTER activées dans le
noyau pour pouvoir fonctionner.
|
Configuration de LTSP
Il existe beaucoup d'options pour configurer vos stations. Allez jeter un œil
sur
http://ltsp.mirrors.tds.net/pub/ltsp/docs/ltsp-4.1-en.html#AEN1190
pour une description complète du fichier
/opt/ltsp/i386/etc/lts.conf.
Voici quelques suggestions pour que vous puissiez démarrer plus facilement.
Vous pouvez copier le fichier /opt/ltsp/i386/etc/lts.conf.example
vers /opt/ltsp/i386/etc/lts.conf et adapter cette configuration à
vos besoins. Vous pouvez changer l'option SCREEN_01 en
SCREEN_01 = startx. Pour utiliser une souris USB sur les
clients distants, ajoutez les lignes MODULE suivantes et changez les lignes
X_MOUSE_* comme indiqué :
Exemple de code 3.10 : /opt/ltsp/i386/etc/lts.conf |
MODULE_01 = usb-uhci
MODULE_02 = mousedev
MODULE_03 = usbmouse
X_MOUSE_PROTOCOL = "IMPS/2"
X_MOUSE_DEVICE = "/dev/input/mice"
|
Gestionnaire de sessions graphiques
Vous devez maintenant modifier la configuration de votre gestionnaire de
sessions graphiques pour que lui aussi accepte les connexions distantes.
Dans le fichier /etc/X11/xdm/Xaccess, décommentez la ligne
suivante :
Exemple de code 3.11 : Fichier /etc/X11/xdm/Xaccess |
#* #any host can get a login window
|
Ensuite, configurez le gestionnaire de sessions graphiques de votre
choix :
XDM : Dans le fichier /etc/X11/xdm/xdm-config,
commentez DisplayManager.requestPort: 0.
KDM : Dans le fichier
/usr/kde/3.1/share/config/kdm/kdmrc, cherchez la section
[Xdmcp] et remplacez Enable = false par
Enable = true.
GDM : Dans le fichier /etc/X11/gdm/gdm.conf, cherchez
la section [xdmcp] et remplacez Enable = false par
Enable = True.
Pour lancez le gestionnaire de sessions graphiques :
Exemple de code 3.12 : Lancement de xdm |
# rc-update add xdm default
# /etc/init.d/xdm start
|
Attention :
Il semble qu'il y ait des problèmes actuellement avec XDM et GDM. L'auteur
utilise KDM pour résoudre ces problèmes.
|
Attention, si votre gestionnaire de sessions graphiques est déjà lancé,
relancer le serveur X avec Ctrl-Alt-Backspace ne redémarrera pas le
gestionnaire de sessions.
Créer une disquette de démarrage
Si vos stations ne supportent pas le démarrage avec PXE, vous pouvez créer une
disquette de démarrage pour vos stations. Allez sur le site
http://www.rom-o-matic.net/, sélectionnez la dernière version, puis
votre carte réseau, ensuite cliquez sur Get ROM et enregistrez l'image
sur une disquette :
Exemple de code 3.13 : Enregistrer l'image sur une disquette |
# cat nicfile.zdsk > /dev/fd0
|
4.
Problèmes
Beaucoup de choses peuvent être à l'origine d'un problème. Heureusement,
plusieurs ressources peuvent vous aider à résoudre vos problèmes :
5.
FAQ
Q : Mes stations ont des processeurs Pentium II, mais mon serveur
compile avec march=athlon-xp, cela va-t-il fonctionner ?
R : Ce n'est pas un problème, car toutes les applications tournent
sur le serveur.
Q : Quel processeur et combien de RAM dois-je mettre dans mon
serveur ?
R : Ce document contient quelques suggestions:
http://wiki.ltsp.org/twiki/bin/view/Ltsp/ServerSizing.
Q : Avez-vous plus d'information sur PXE ?
R : Oui, jetez un œil à http://wiki.ltsp.org/twiki/bin/view/Ltsp/PXE.
Q : Est-ce possible d'utiliser des programmes en 3D accélérée
sur les stations ?
R : Si vous utilisez des cartes nVidia, jetez un œil à
http://wiki.ltsp.org/twiki/bin/view/Ltsp/NvidiaLtsp411.
Q : Dans certaines applications, les polices sont ignobles.
Que faire ?
R : Vous devez mettre en place un serveur de polices (N.D.T. :
XFontServer), ajoutez USE_XFS=Y à votre fichier lts.conf,
éditez /etc/X11/fs/config et décommentez
no-listen: tcp, remplacez XFS_PORT="-1" par
XFS_PORT="7100" dans /etc/conf.d/xfs et lancez XFS :
/etc/init.d/xfs start. Vérifiez également que le fichier
/etc/X11/XF86Config (ou /etc/X11/xorg.conf) contient
bien FontPath "unix/:7100" dans la section « Files ».
Q : Comment utiliser la carte son de mon ordinateur ?
A : Gentoo contient le paquet ltsp-sound. Veuillez consulter le
fichier README inclus.
6.
Glossaire
LTSP : « LTSP fournit un
moyen simple d'utiliser des stations à bas prix en tant que terminaux
graphiques ou console avec un serveur GNU/Linux. »
PXE :
« Abbréviation de Pre-Boot Execution Environment. PXE est un composant de
la spécification WfM d'Intel. Il permet à une station de démarrer sur un
serveur du réseau au lieu de démarrer sur le système d'exploitation du disque
dur local. Une station pourvue de PXE connecte sa carte réseau au réseau local
via un cavalier, ce qui permet de laisser la station connectée au réseau même
lorsque l'alimentation est éteinte. »
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|