Comme promis voici mes essais avec ltsp.
J'ai fait les tests avec un client P133 et un P200.
32 ou 48 Mo de RAM semblent suffisants (ne fonctionne pas avec 16 Mo de RAM) .
J'ai testé plusieurs cartes réseau :
- Intel EtherExpress Pro/10+ ISA        ne permet pas de booter
                                                          (sans doute un pb 
d'IRQ / adresse I/O à configurer)
- Intel pRO 1000                                driver E1000 : permet de 
booter, mais plante peu après,
                                                                sans doute un 
bug dans le pilote
- 3com                                          3c590X  10/100 Mb/s : OK
- Carte pci non identifiée                      driver ne2000  10 Mb/s : OK

La carte 3com a une ROM proposant différentes méthodes de boot (TCP/IP, PXE) 
et protocoles (BOOTP/DHCP) mais je n'ai pas encore trouvé comment les 
utiliser.

Les résultats sont plus que satisfaisants :
- en 10 Mb/s l'affichage sur le client est clairement plus lent que sur une 
console connectée directement sans que ce soit vraiment gênant. En tout cas 
nettement plus rapide qu'avec NX ou la commande X -query.
- en 100 Mb/s c'est très rapide.
- en Gb ce devrait être parfait (pas encore pu essayer).

Ubuntu étant préconfiguré pour l'utilisation de LTSP j'ai d'abord essayé cette 
possibilité : sans succès (problème avec NFS sans doute dû à une erreur de 
configuration de ma part que je n'ai pas réussi à résoudre).
Il existe plusieurs distributions LTSP "clés en main" : K12LTSP, Abduledu, 
Majilux ... : j'ai un temps envisagé d'installer Majilux sur les conseils de 
l'un d'entre vous, mais malheureusement la distribution ne propose pas de 
s'installer ailleurs que sur la première partition des disques durs ce qui ne 
m'arrangeait pas du tout.

Je me suis donc résolu à installer LTSP sur notre distribution préférée, MDV 
2006.0, et ça tourne remarquablement bien.
Cependant il y a un gros travail de configuration que je détaille ci-dessous, 

=============
Documentation
=============
LTSP :
                http://www.ltsp.org/documentation/ltsp-4.1/ltsp-4.1-en.html
        wiki :
                http://wiki.ltsp.org/twiki/bin/view/Ltsp/WebHome
        Trouble Shooting LTSP
                http://wiki.ltsp.org/twiki/bin/view/Ltsp/TroubleShooting
        http://gentoo-wiki.com/LTSP_Configuration

Configuration du firewall :
        http://www.troubleshooters.com/lpm/200305/200305.htm
        
http://sourceforge.net/mailarchive/forum.php?thread_id=8972145&forum_id=2270

========
Firewall
========
Attention : beaucoup de problèmes peuvent provenir du firewall.
Il est donc plus facile de faire les essais hors connexion à Internet ce qui 
permet de désactiver momentanément le firewall.
Je n'ai pas encore encore eu le temps de tester le paramétrage du firewall qui 
semble assez complexe (cf. liens ci-dessus).

============================
Installations sur le serveur
============================

ltsp-utils
°°°°°°°°°°
Ce package installe :
/usr/bin/ltspinfo
/usr/sbin/ltspadmin
/usr/sbin/ltspcfg

ltspadmin
---------
LTSP Administration Utility
  Install/Update LTSP Packages
  Configure the installer options
  Configure LTSP
Comme l'indique le menu ci-dessus ltspadmin permet :
- de télécharger le package LTSP (plusieurs centaines de Mo)
- de choisir un (ou changer le) serveur à partir duquel on veut télécharger le 
package LTSP
- de lancer ltspcfg

ltspcfg
-------
Permet
- d'afficher l'état (status) de tous les services nécessaires au 
fonctionnement de LTSP
- de les configurer

Conseil : le lancer chaque fois que l'on veut vérifier l'état d'avancement de 
la configuration de LTSP.

ltspinfo
--------
cf. (par exemple) :
http://osl.birzeit.edu:8080/wiki2/index.php/Ltspinfo
http://www.k12ltsp.org/phpwiki/index.php/Technical:RemoteClientShutdown

Permet de contrôler le client à partir du serveur.
Contrairement aux 2 outils précédents on peut dans un premier temps 
l'ignorer : il est sans intérêt pour l'installation et la configuration de 
LTSP.

dhcpd
°°°°°°°
Installer dhcp-server
Ce service est nécessaire pour fournir une adresse IP aux clients et lui 
indiquer à partir de quel serveur récupérer tout ce qui est nécessaire 
(kernel, Xorg ...) à son fonctionnement.
NB : dhcpd et ltsp sont indépendants : ils peuvent parfaitement, si on le 
désire, être installés sur des serveurs différents.

tftpd
°°°°°
Installer tftp-server.
tftpd (simple serveur ftp) est indispensable : il permet au client de 
télécharger à partir du serveur le kernel fourni par LTSP.

NFS
°°°
Généralement installé par défaut et démarré d'office dans la plupart des 
distributions (dont MDV) : RAS

XDMCP
°°°°°
Généralement aussi installé par défaut et démarré dans la plupart des 
distributions (dont MDV).
A configurer, voir ci-dessous.

=============================
Installations sur les clients
=============================
Consulter "Chapter 3. Setting up the workstation"
sur http://www.ltsp.org/documentation/ltsp-4.1/ltsp-4.1-en.html
(ou équivalent dans la doc française) 

"Etherboot" permet de démarrer le client et d'établir la connexion avec le 
serveur dhcp.
Le plus simple pour les tests est de mettre une image d'Etherboot sur une 
disquette ou un CD à partir duquel on démarrera le client.
La doc conseille le site www.Rom-O-Matic.net où l'on peut compiler 
quasi-automatiquement le driver Etherboot correspondant à la carte réseau du 
client utilisé. Le problème est qu'il est souvent difficile de déterminer le 
modèle de carte réseau.
Je conseille plutôt de récupérer sur http://etherboot.anadex.de/
une image contenant tous les drivers connus et de créer une disquette de boot 
"universelle" avec la commande :
        dd if=eb_on_hd.ima of=/dev/fd0
(sous DOS créer la siquette avec rawrite, sous windows avec rawritewin ).
Elle détecte automatiquement la carte réseau installée sur le client et permet 
de le démarrer sans plus se compliquer la vie.

=============================
Configuration du serveur dhcp
=============================
On configurera ensuite le serveur dhcp

1 - Lancer sur le serveur :
# tail :tail -f /var/log/messages 
le serveur dhcp n'affiche en effet aucune erreur à l'écran : les messages 
d'erreur (ou autres) vont dans /var/log/messages.

2 - Vérifier que le serveur dhcp est démarré
Pour connaître son état (démarré / arrêté)
# service dhcpd status
dhcpd (pid 5511) is running...#
Démarrer /redémarrer : service dhcpd start | restart
En cas de problème regarder ce qui s'affiche dans /var/log/messages.

3 - Afficher l'adresse MAC de la carte réseau du serveur avec :
# ifconfig

4 - Démarrer un client avec la disquette etherboot.
L'adresse MAC de la carte réseau apparaît dans les logs du serveur. L'utiliser 
pour configurer /etc/dhcpd.conf

5 - Configurer dhcpd sur le serveur (fichier /etc/dhcpd.conf)
A l'installation de dhcp-server un fichier /etc/dhcpd.conf a été 
automatiquement créé.
LTSP de son coté crée en s'installant un fichier /etc/dhcpd.conf.sample : on 
peut l'oublier, il est incompréhensible et n'apporte aucune information 
intéressante (à mon avis en tout cas).
Editer plutôt /etc/dhcpd.conf et entrer les valeurs correspondant à son réseau 
(le fichier est déjà rempli avec des valeurs qui sont pratiquement bonnes 
pour un réseau "domestique" en 192.168.0...). On laissera les valeurs par 
défaut pour les paramètres que je n'indique pas et on modifiera si 
nécessaire :
        subnet-mask
        broadcast-address
        routeurs : il s'agit en fait du gateway ou passerelle vers l'extérieur
        domain-name-servers
        domain-name
        option root-path : attention ! indiquer ici l'adresse du serveur et le 
path 
où est installé LTSP, par exemple :
        option root-path "192.168.0.10:/opt/ltsp/i386";

Faire très attention pour la suite : voici par exemple ce qu'on peut mettre 
pour un réseau "domestique" en 192.168.0... avec un serveur d'adresse 
192.168.0.10 et un client "toto" dont on veut fixer l'adresse à 
192.168.0.20 :

subnet 192.168.0.0 netmask 255.255.255.0 {
        next-server 192.168.0.10;       # adresse du serveur sur lequel se 
trouve LTSP
                                                        # cette ligne est 
_indispensable_ pour Etherboot (bug probable)
                                                        # mais par contre 
inutile pour d'autres clients dhcp 
    use-host-decl-names      on;
    option log-servers       192.168.0.10;      # adresse du serveur de log
    host toto {                                         # paramètres pour le 
client "toto"
        next-server 192.168.0.10                # _indispensable_ pour LTSP : 
c'est l'adresse
                                                                # du serveur où 
le client trouvera LTSP
        hardware ethernet    00:01:02:cf:1d:f2; # adresse MAC de la carte réseau
                                                                        # du 
client
        fixed-address        192.168.0.20;      # on fixe ici l'adresse IP
                                                                # du client
        filename             "/tftpboot/lts/vmlinuz-2.6.9-ltsp-3";
    }

Attention : dans filename indiquer l'adresse du kernel que le client devra 
récupérer sur le serveur "next_serveur" déclaré 3 lignes avant.
ATTENTION ! l'adresse filename dépend aussi du paramètre "server_args" du 
fichier de configuration de tftp (/etc/xinetd.d/tftp), voir ci-dessous. 

On déclarera bien évidemment autant de "host" (clients) que nécessaire. On 
pourra aussi faire de l'allocation dynamique (je n'ai pas encore testé).

=============================
Configuration du serveur tftp
=============================
Editer /etc/xinetd.d/tftp
LTSP installe tftpboot dans / alors que tftp s'attend à le trouver 
dans /var/lib/tftpboot (cf paramètre de démarrage de tftpd "server_args").
Le plus simple est de mettre en commentaire la ligne :
#       server_args             = -s /var/lib/tftpboot
(si on laisse un argument à passer au serveur tftp, modifier en conséquence la 
ligne "filename" dans /etc/dhcpd.conf).

Voilà le plus dur est fait : la connexion client-serveur devrait fonctionner. 
Si ce n'est pas le cas, voir :
- /var/log/messages souvent très explicite
- http://wiki.ltsp.org/twiki/bin/view/Ltsp/TroubleShooting
- paragraphe "Messages d'erreur" plus loin

=====
XDMCP
=====
Appelle le "display manager" du serveur pour afficher un écran de login sur le 
client. 
En général c'est GDM ou KDM (mdkkdm) qui est appelé. Pour des raisons de 
sécurité la connexion de clients est par défaut interdite. Pour l'autoriser :

GDM :
éditer /etc/X11/gdm/gdm.conf
chercher [xdmcp] et changer "Enable=false" en "Enable=true"

KDM :
éditer /etc/kde/kdm/kdmrc
chercher[Xdmcp] et remplacer Enable=false par Enable=true

Pour un autre "display manager", voir la doc sur 
http://www.tldp.org/HOWTO/XDMCP-HOWTO/

Relancer X. (<Alt><Ctrl><Backspace> par exemple)

=====================
Configuration de LTSP
=====================
- Lancer ltspcfg pour voir si tout est OK;
- Voir :
        /opt/ltsp/i386/etc/lts.conf.readme
        /opt/ltsp/i386/etc/lts.conf

Bien lire lts.conf.readme : on y trouve de nombreux paramètres pour modifier 
le comportement des clients. Rajouter par exemple dans lts.conf :
        XkbLayout       = fr            pour avoir un clavier français
        X_MODE_0        = 1024x768      pour la résolution écran, si supportée 
pas la carte video 
du client.

L'écran de login devrait apparaître. Si ce n'est pas le cas :
# tail -f /var/log/messages
et aussi
# tail -f /var/log/Xorg.0.log


===================================
Messages d'erreur divers rencontrés
===================================
L'option root-path dans /etc/dhcpd.conf est indispensable, sinon :
ERROR! No root-path; Check your DHCP configuration ....
Kernel panic ....

Dans le cas où l'adresse Mac du client n'est pas déclarée dans dhcpd.conf les 
messages d'erreur suivants s'affichent :
Coté serveur dans /var/log/messages :
        Feb 10 19:00:31 <NomClient> dhcpd: DHCPDISCOVER from 00:0e:0c:65:59:23 
via 
eth0: network 192.168.0/24: no free leases
Coté client sur l'écran :
        No IP address

syslogd: cannot write to remote file handle on 192.168.0.254:514
Editer /etc/sysconfig/syslog
Rajouter -r dans la ligne :
        SYSLOGD_OPTIONS="-m 0 -a /var/spool/postfix/dev/log" :
=>      SYSLOGD_OPTIONS="-m 0 -r -a /var/spool/postfix/dev/log"
Puis redémarrer syslogd
$ ps aux | grep syslogd
sudo kill -HUP <pid syslogd>

Voilà : l'installation n'est pas des plus immédiate, mais le résultat est 
vraiment intéressant.
Il y a probablement des erreurs et oublis dans ce petit topo mais j'espère 
qu'il pourra quand même rendre service.

Jean-Claude
____________________________________________________
Want to buy your Pack or Services from Mandriva? 
Go to http://store.mandriva.com
Join the Club : http://www.mandrivaclub.com
____________________________________________________

Répondre à