Gentoo Logo

Gentoo - Guide LTSP

Table des matières :

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

(Quelques options générales)
default-lease-time            21600;
max-lease-time                21600;
use-host-decl-names           on;
ddns-update-style             ad-hoc;

(Options pour Bootp)
allow booting;
allow bootp;

(Options de définition du réseau)
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";

(Options de chemins pour LTSP)
option root-path              "192.168.0.254:/opt/ltsp-4.1/i386";
filename                      "/lts/vmlinuz-2.4.26-ltsp-2";
(Addresse du serveur tftp duquel le fichier ltsp doit être téléchargé)
next-server                   192.168.0.254;

(Si vos stations ont des cartes réseau ISA, décommentez les)
(lignes suivantes et modifiez le nom du pilote et l'adresse IO.)
#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 {
    (Alloue des adresses IP dynamiques aux stations.)
    range dynamic-bootp 192.168.0.1 192.168.0.16;
    (Configuration spécifique à une station pour le boot PXE)
    #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. »



Imprimer

Dernière mise à jour le 28 septembre 2008

La version originale de cette traduction n'est plus maintenue

Résumé : Ce guide vous explique comment mettre en place un serveur LTSP sous Gentoo.

Heinrich Wendel
Auteur

Josiah Ritchie
Auteur

Sven Vermeulen
Correcteur

Camille Huot
Traducteur

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.