Linux Réseaux
LTSP
Linux Terminal Server Project - Installation et configuration



Pour : Linux


1- Interface graphique
 a- Installation
 b- Configurer pour une utilisation a distance

2- Serveur LTSP
 a- Installation
 b- Configuration réseau des clients
 c- Construire l'environnement du client "LTSP"
 d- Configuration des paramètres des clients

3- Serveur DHCP
 a- Installation
 b- Configuration

4- Serveur NFS
 a- Installation
 b- Configuration
 c- Vérification

5- Serveur Portmap

6- XDMCP
 a- Installation de "XDM"
 b- Le fichier "xdm-config"
 c- Le fichier "Xservers"
 d- Le fichier "Xaccess"
 e- Le fichier "Xresources"
 f- Vérification

7- Démarrage d'un client en boot PXE

8- Actuce et conseil
 a- Le paquet "ltsp-server-standalone"
 b- Les outils d'administration "ltsp-utils"
 c- Pourquoi le client PXE ne charge pas l'image ?



A savoir: Vous avez le choix entre deux fichiers pour la configuration de réseau des client "ltsp".
Soit vous créer la configuration dans le fichier de "ltsp" dans "/etc/ltsp/dhcpd.conf" et vous rajouter un lien dans le fichier de configuration de votre serveur DHCP.
Ou vous créez directement la configuration réseau des clients "ltsp" dans le fichier du serveur DHCP "/etc/dhcp/dhcpd.conf".
Les deux méthodes seront affiché dans ce tutoriel, a vous de choisir celle qui vous convient le mieux.



1- Interface graphique

a- Installation
Votre serveur doit installer une interface graphique pour les postes clients, dans notre tutoriel on va installer le bureau Gnome 3:
PS: Mais si vos clients n'utiliseront pas d'interface graphique mais un simple shell, passer directement a l'étape "2".

# apt-get install gdm3



b- Configurer pour une utilisation a distance
Par défault "Gnome 3" n'autorise que le fonctionnement en local, on va donc configurer Gnome pour être utilisé a distance, pour permêttre ainsi a XDMCP d'ouvrir une session graphique distante.
On arrêt le service Gnome:

# service gdm3 stop



On édite le fichier "/etc/gdm3/daemon.conf" et on rajoute les deux lignes, comme ci-dessous :

# nano /etc/gdm3/daemon.conf [daemon] NoConsole=true [xdmcp] Enable=true



Et après on redémarre le service "Gnome":

# service gdm3 start





2- Serveur LTSP

a- Installation:
Vous pouvez soit faire une installation complète de "LTSP":

# apt-get install ltsp-server-standalone



Ou soit installer que le service "LTSP", c'est ce que l'on va faire dans ce tutoriel:

# apt-get install ltsp-server



Choisissez l'emplacement racine pour installer votre service, ici nous laisseront l'emplacement par défault "/srv/tftp", validez par "OK":



b- Configuration réseau des clients:
On va créer la configuration réseau des clients de "LTSP", pour cela on édite le fichier "/etc/ltsp/dhcpd.conf":
PS: Si le répertoire "/etc/ltsp/" n'existe pas, créez le:

# mkdir /etc/ltsp/



Voici un exemple de fichier très complet et commenter, je vous conseil de commencer a utilisé que la 1ère "pool".
On edite le fichier "/etc/ltsp/dhcpd.conf":

# nano /etc/ltsp/dhcpd.conf # # Default LTSP dhcpd.conf config file. # # Donner la priorité sur un autre serveur dhcp authoritative; option domain-name "octetmalin.net"; option domain-name-servers 192.168.1.5; option routers 192.168.1.1; option broadcast-address 192.168.1.255; option subnet-mask 255.255.255.0; # Autoriser l'utilisation de ce sous-réseau subnet 192.168.1.0 netmask 255.255.255.0 { pool { # Début 1ère pool # La plage d'adresses possibles pour les clients range 192.168.1.100 192.168.1.150; # Autoriser les client inconnu allow unknown-clients; # Comme exemple ici je spécifie un DNS différent que celui cité plus haut option domain-name-servers 192.168.1.1; # Indique l'emplacement chrooter du bootrom PXE (/srv/tftp/ltsp/i386/) if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "ltsp/i386/pxelinux.0"; } else { filename "ltsp/i386/nbi.img"; } # Emplacement de l'image système a charger sur les client option root-path "/opt/ltsp/i386"; } # Fin 1ère pool # Dans la 2ème pool, on définit 3 clients avec leur adresse MAC a # ce connecter sur un autre serveur "LTSP" dont l'adresse IP est 192.168.1.5 pool { # Début 2ème pool range 192.168.1.151 192.168.1.200; deny unknown-clients; option root-path "192.168.1.5:/opt/ltsp-4/i386"; if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "ltsp-4/i386/pxelinux.0"; } else { filename "ltsp-4/i386/nbi.img"; } # Liste des adresses MAC host [nom_DNS_machine_1] { # Il disposera de l'IP 192.168.1.151 hardware ethernet 08:08:08:08:08:AA; } host [nom_DNS_machine_2] { # Il disposera de l'IP 192.168.1.152 hardware ethernet 08:08:08:08:08:BB; } host [nom_DNS_machine_3] { # Il disposera de l'IP 192.168.1.153 hardware ethernet 08:08:08:08:08:CC; } } # Fin 2ème pool } # Fin sous-réseau




Le paramètre "filename" permet de spécifier l'emplacement du bootrom PXE a télécharger par le client.
PS: Pour une raison de sécurité le daemon effectue un chroot vers le répertoire /tftpboot lorsqu'il démarre.
Donc pour l'emplacement du bootrom PXE faut par exemple indiquer "ltsp/i386/pxelinux.0" et pas le chemin complet "/tftpboot/ltsp/i386/pxelinux.0".

Note pour information: La ligne filename va charger le fichier "pxelinux.0" qui contient le chargeur pour le client PXE.
Ce qui va charger le fichier "default" dans le répertoire courant:
/srv/tftp/ltsp/i386/pxelinux.cfg/default
Qui va revoyer l'ordre de charger l'image:
/srv/tftp/ltsp/i386/vmlinuz
(Image constitué de Busybox)

c- Construire l'environnement du client "LTSP"
Cette commande va créer l'image système que le client va utiliser.
Par défault les éléments sont téléchargés depuis les dépôts Debian:

ltsp-build-client



Les fichiers bootrom PXE sont installés sur le serveur dans:
/srv/tftp/ltsp/i386/
/var/lib/tftpboot/ltsp/i386

L'image que le client va télécharger se trouve sur le serveur dans:
/opt/ltsp/i386

d- Configuration des paramètres des clients
Le fichier "lts.conf" situé dans l'image, permet de configurer les paramètres de configuration du client léger.

nano /opt/ltsp/i386/etc/lts.conf [default] LTSP_CONFIG=True SERVER = 192.168.1.254 XSERVER = auto # Définir de multiples sessions d'écrans pour un même client léger. # Ils peuvent être de types différents ou du même type. (CRTL + ALT + NUM) SCREEN_01 = startx SCREEN_02 = shell



Démarrage du service:

service tftpd-hpa start





3- Serveur DHCP

On doit disposer d'un serveur DHCP pour permêttre au client de démarrer en PXE.

a- Installation
Installer serveur DHCP depuis les dépôts:

apt-get install isc-dhcp-server



b- Configuration
Editer le fichier "/etc/dhcp/dhcpd.conf" et ajoutez les lignes suivantes.

nano /etc/dhcp/dhcpd.conf include "/etc/ltsp/dhcpd.conf"; allow bootp; allow booting;



PS: Il vous est possible de rajouter directement ici la configuration réseau des clients "LTSP" dans le fichier du serveur DHCP, et ainsi ne pas utiliser le fichier "/etc/ltsp/dhcpd.conf".
Si t'elle est le cas retirer la ligne "include" et copier l'exemple contenu dans le fichier "/etc/ltsp/dhcpd.conf" ci-dessus.

Redémarrer le serveur DHCP:

service isc-dhcp-server restart





4- Serveur NFS

"nfs" permet de partager des répertoires pour les rendre accessible sur le réseau.

a- Installation

apt-get install nfs-common nfs-kernel-server



b- Configuration
Il faut rajouter dans le fichier "/etc/exports" le répertoire de LTSP afin de partager sur le réseau.
Ici on indique l'emplacement où ce trouve l'image système que les clients vont télécharger après le bootrom PXE.
On edite le fichier et on ajoute la ligne suivante:

# nano /etc/exports /opt/ltsp *(ro,no_root_squash,async,no_subtree_check)



Et après on démarre les deux services:

# service nfs-common start # service nfs-kernel-server start



c- Vérification
On vérifie que les répertoires sont accéssible a distance, pour afficher la liste:

# showmount [ip_du_serveur] -e



Exemple:

# showmount 192.168.1.55 -e Export list for 192.168.1.55: /opt/ltsp * #





5- Serveur Portmap

On va éditer le fichier de configuration "/etc/default/portmap" pour qu'il écoute l'exterieur, cela est nécessaire pour le serveur "NFS":

# nano /etc/default/portmap



Maintenant, assurez-vous que portmap n'est pas lancé sur l'interface loopback.
Dans ce cas rajoutez un "#" devant cette ligne.

OPTIONS = "-i 127.0.0.1"



Et après redémarrez le service Portmap:

service portmap restart





6- XDMCP

a- Installation de "XDM"
On va faire une installation depuis les dépôts:

# apt-get install xdm



Choisir gdm3 a la question et pas xdm.




Maintenant il faut configurer les fichiers "xdm-config", "Xservers", "Xaccess" et "Xresources" qui ce trouve dans le répertoire:
/etc/X11/xdm

b- Le fichier "xdm-config"?
Définit l'emplacement des autres fichiers de configuration et les permissions d'accès de base.
Ici on laisse tout par défault.

# nano /etc/X11/xdm/xdm-config ! ! ! ! ! DisplayManager.authDir: /var/lib/xdm DisplayManager.errorLogFile: /var/log/xdm.log DisplayManager.pidFile: /var/run/xdm.pid DisplayManager.keyFile: /etc/X11/xdm/xdm-keys DisplayManager.servers: /etc/X11/xdm/Xservers DisplayManager.accessFile: /etc/X11/xdm/Xaccess DisplayManager*resources: /etc/X11/xdm/Xresources DisplayManager.willing: su nobody -c /etc/X11/xdm/Xwilling ! All displays should use authorization, but we cannot be sure ! X terminals will be configured to support it, so those that do not will ! require individual resource settings. DisplayManager*authorize: true ! DisplayManager*chooser: /usr/lib/X11/xdm/chooser DisplayManager*startup: /etc/X11/xdm/Xstartup DisplayManager*session: /etc/X11/xdm/Xsession DisplayManager*setup: /etc/X11/xdm/Xsetup DisplayManager*reset: /etc/X11/xdm/Xreset DisplayManager*authComplain: true DisplayManager*loginmoveInterval: 10 ! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with xdm DisplayManager.requestPort: 0



c- Le fichier "Xservers"
Contient la liste des machines qui pourront permêttre a des clients de ce connecter automatiquement sur des serveurX qui sont entrain de tourner.
Ajouter ces deux lignes.

# nano /etc/X11/xdm/Xservers # Lancer le serveur X en local # Et permêttera de présenter un écran d'authentification sur les serveurs X tournant sur les hôtes. :0 local /usr/bin/X11/X vt7 # Toutes les machines distante *:0 foreign # Ou les machines distante selon leur nom pc-toto:0 foreign client-cedric:0 foreign



d- Le fichier "Xaccess"
Détermine les machines que nous accepterons les requêtes vers XDMCP afin de leur fournir un invite d'authentification.
Nous ajouterons ces deux lignes pour autoriser tout les clients a ce connecter.

# nano /etc/X11/xdm/Xaccess # Pour les requêtes directes * # Pour les requêtes indirectes * CHOOSER BROADCAST



e- Le fichier "Xresources"
Contient les paramètres X utilisés par les composants.
On laisse par défault.

# nano /etc/X11/xdm/Xresources ! ! ! ! ! Xcursor.theme: whiteglass xlogin*login.translations: #override \ Ctrl<Key>R: abort-display()\n\ <Key>F1: set-session-argument(failsafe) finish-field()\n\ <Key>Delete: delete-character()\n\ <Key>Left: move-backward-character()\n\ <Key>Right: move-forward-character()\n\ <Key>Home: move-to-begining()\n\ <Key>End: move-to-end()\n\ Ctrl<Key>KP_Enter: set-session-argument(failsafe) finish-field()\n\ <Key>KP_Enter: set-session-argument() finish-field()\n\ Ctrl<Key>Return: set-session-argument(failsafe) finish-field()\n\ <Key>Return: set-session-argument() finish-field() xlogin*greeting: Welcome to CLIENTHOST xlogin*namePrompt: \040\040\040\040\040\040\040Login: xlogin*fail: Login incorrect #if WIDTH > 800 xlogin*greetFont: -adobe-helvetica-bold-o-normal--24-240-75-75-p-138-iso8859-1 xlogin*font: -adobe-helvetica-medium-r-normal--18-180-75-75-p-98-iso8859-1 xlogin*promptFont: -adobe-helvetica-bold-r-normal--18-180-75-75-p-103-iso8859-1 xlogin*failFont: -adobe-helvetica-bold-r-normal--18-180-75-75-p-103-iso8859-1 xlogin*greetFace: Serif-24:bold:italic xlogin*face: Helvetica-18 xlogin*promptFace: Helvetica-18:bold xlogin*failFace: Helvetica-18:bold #else xlogin*greetFont: -adobe-helvetica-bold-o-normal--17-120-100-100-p-92-iso8859-1 xlogin*font: -adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1 xlogin*promptFont: -adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1 xlogin*failFont: -adobe-helvetica-bold-o-normal--14-140-75-75-p-82-iso8859-1 xlogin*greetFace: Serif-18:bold:italic xlogin*face: Helvetica-12 xlogin*promptFace: Helvetica-12:bold xlogin*failFace: Helvetica-14:bold #endif #ifdef COLOR xlogin*borderWidth: 1 xlogin*frameWidth: 5 xlogin*innerFramesWidth: 2 xlogin*shdColor: grey30 xlogin*hiColor: grey90 xlogin*background: grey !xlogin*foreground: darkgreen xlogin*greetColor: Blue3 xlogin*failColor: red *Foreground: black *Background: #fffff0 #else xlogin*borderWidth: 3 xlogin*frameWidth: 0 xlogin*innerFramesWidth: 1 xlogin*shdColor: black xlogin*hiColor: black #endif #if PLANES >= 8 xlogin*logoFileName: /usr/share/X11/xdm/pixmaps/debian.xpm #else xlogin*logoFileName: /usr/share/X11/xdm/pixmaps/debianbw.xpm #endif xlogin*useShape: true xlogin*logoPadding: 10 XConsole.text.geometry: 480x130 XConsole.verbose: true XConsole*iconic: true XConsole*font: fixed Chooser*geometry: 700x500+300+200 Chooser*allowShellResize: false Chooser*viewport.forceBars: true Chooser*label.font: *-new century schoolbook-bold-i-normal-*-240-* Chooser*label.label: XDMCP Host Menu from CLIENTHOST Chooser*list.font: -*-*-medium-r-normal-*-*-230-*-*-c-*-iso8859-1 Chooser*Command.font: *-new century schoolbook-bold-r-normal-*-180-*



Après on démarre le service "xdm":

# service xdm start



f- Vérification
On vérifier que votre gestionnaire de connexion est bien à l'écoute de requêtes XDMCP.
Taper la commande suivante :

# netstat -apn | grep ":177 " udp6 0 0 :::177 :::* 1643/gdm3





7- Démarrage d'un client en boot PXE

Vos postes clients doivent posséder une interface réseau pouvant booter en PXE.
Changez l'ordre de la séquance de démarrage dans le bios de façon a booter en premier sur le réseau.

Après chargement de l'image dans la mémoire vive du client, vous devriez voir cette écran de connexion pour vous logguer sur un compte disponible sur le terminal serveur. (Puis le mot de passe de l'utilisateur sera demandé.)





8- Astuce et conseil

a- Le paquet "ltsp-server-standalone"
Alternativement, pour ce qui on installé le paquet "ltsp-server-standalone", il faut éditer le fichier "/etc/default/tftpd-hpa" afin de pouvoir le lancer en local:
Rajouter la ligne : RUN_DAEMON = "yes"

# nano /etc/default/tftpd-hpa # ltsp-server-standalone RUN_DAEMON = "yes" TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure"



Et aussi spécifier sur quel intéface le service doit écouter.

# nano /etc/ltsp.conf : # # Configuration variables for LTSP # LTSP_ETH_INTERFACE=eth0



Et après redémarrer le service:

# service tftpd-hpa restart



Puis suivre le tutoriel ci-dessus...

b- Les outils d'administration "ltsp-utils"
Ces outils sont optionnel, mais parfois peuvent être utils:
TélechargeMENT et installation depuis les binaires:

wget archive.debian.org/debian/pool/main/l/ltsp-utils/ltsp-utils_0.10.orig.tar.gz tar -xvzf ltsp-utils_0.10.orig.tar.gz cd ltsp-utils_0.10 sh install.sh



Lancement de l'outil:

# ltspadmin


Sélectionner le menu "Install/Update LTSP Packages" et suivre les indications, puis sélectionner tous les paquets a télécharger.
Les paramètres de configuration DE "ltspadmin" sont enregistrés dans le fichier "/etc/ltsp.conf".

c- Pourquoi le client PXE ne charge pas l'image ?
En premier vérifier que vous bien configurer le fichier "/etc/exports" et que le service est bien lancé.

Mettre à jour les noyaux a charger:

# ltsp-update-kernels Updating /var/lib/tftpboot directories for chroot: /opt/ltsp/i386 Updating /srv/tftp directories for chroot: /opt/ltsp/i386


Si votre serveur tourne en 64 bit et que vos clients doivent fonctionner en 32 bit, vérifier que le répertoire de chargement de l'image est bien i386, sinon refaite une compression avec:
ltsp-update-image -a nom_du_chroot (par défaut c'est i386)

Erreur au chargement du bootrom PXE "nfsmount: need a path"
Vérifier que vous avez cette option de mise dans votre fichier "/etc/ltsp/dhcpd.conf" ou directement dans le fichier de votre serveur DHCP.

option root-path "/opt/ltsp/i386";

Et que le répertoire est accessible depuis le réseau.

Le client est chargé mais l'interface graphique ne ce lance pas, éssayé donc ces commandes sur le client:

/usr/X11R6/bin/X -broadcast /usr/X11R6/bin/X -query ip_du_serveur





Lien pour aller sur le site de l'éditeur:
www.ltsp.org


Par O.Cédric
Sur www.octetmalin.net

Article publié le:
06/01/2012 13:42





Cette page vous à plus?

Dîtes que vous l'aimez en cliquant sur le bouton Facebook.