L'install a été réalisée sur une machine physique : DELL OPTIPLEX 360 (core 2duo / 4 Go Ram). ATTENTION: la netinstall de lenny-amd64 ne détecte pas la carte réseau intégrée sur ce type de machine.
J'ai donc du rajouter une carte réseau (e100 en l'occurence) sur le seul slot PCI disponible.

Récap: 1 machine sera à la fois serveur vmware et serveur ltsp. Côté vmware, ce sont des xp ui tourneront. Côté ltsp ça sera de la debian interface gnome.

Le serveur a été installé à partir d'une lenny-netinstall-amd64 avec l'environnement graphique gnome.

esxi:~# uname -a
Linux esxi 2.6.26-2-amd64 #1 SMP Tue Mar 9 22:29:32 UTC 2010 x86_64 GNU/Linux

esxi:~# free
             total       used       free     shared    buffers     cached
Mem:       3989408    2309328    1680080          0      81152    1360992
-/+ buffers/cache:     867184    3122224
Swap:      6385796          0    6385796


esxi:~# df -hT
Sys. de fich. Type     Tail. Occ. Disp. %Occ. Monté sur
/dev/sda1     ext3    141G   15G  120G  11% /
tmpfs        tmpfs    2,0G     0  2,0G   0% /lib/init/rw
udev         tmpfs     10M  780K  9,3M   8% /dev
tmpfs        tmpfs    2,0G     0  2,0G   0% /dev/shm


esxi:~# netstat -lnp (en fonctionnement normal)
Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name
tcp        0      0 0.0.0.0:40480           0.0.0.0:*               LISTEN      1853/rpc.statd 
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -              
tcp        0      0 0.0.0.0:9571            0.0.0.0:*               LISTEN      5574/inetd     
tcp        0      0 0.0.0.0:9572            0.0.0.0:*               LISTEN      5574/inetd     
tcp        0      0 0.0.0.0:902             0.0.0.0:*               LISTEN      3134/vmware-authdla
tcp        0      0 0.0.0.0:8333            0.0.0.0:*               LISTEN      3277/vmware-hostd
tcp        0      0 127.0.0.1:686           0.0.0.0:*               LISTEN      2630/famd      
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1841/portmap   
tcp        0      0 127.0.0.1:8307          0.0.0.0:*               LISTEN      3277/vmware-hostd
tcp        0      0 0.0.0.0:43571           0.0.0.0:*               LISTEN      -              
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      5574/inetd     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      4379/sshd      
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      2279/cupsd     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2554/exim4     
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      5666/2         
tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN      5666/2         
tcp        0      0 0.0.0.0:44316           0.0.0.0:*               LISTEN      2608/rpc.mountd
tcp        0      0 0.0.0.0:8222            0.0.0.0:*               LISTEN      3277/vmware-hostd
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      3145/webAccess 
tcp6       0      0 :::8009                 :::*                    LISTEN      3145/webAccess 
tcp6       0      0 :::8308                 :::*                    LISTEN      3145/webAccess 
tcp6       0      0 :::22                   :::*                    LISTEN      4379/sshd      
tcp6       0      0 ::1:631                 :::*                    LISTEN      2279/cupsd     
tcp6       0      0 ::1:6010                :::*                    LISTEN      5666/2         
tcp6       0      0 ::1:6011                :::*                    LISTEN      5666/2         
udp        0      0 0.0.0.0:2049            0.0.0.0:*                           -              
udp        0      0 0.0.0.0:46225           0.0.0.0:*                           2608/rpc.mountd
udp        0      0 0.0.0.0:67              0.0.0.0:*                           5594/dhcpd3    
udp        0      0 0.0.0.0:44484           0.0.0.0:*                           2210/avahi-daemon:
udp        0      0 0.0.0.0:69              0.0.0.0:*                           5574/inetd     
udp        0      0 0.0.0.0:44367           0.0.0.0:*                           -              
udp        0      0 0.0.0.0:33363           0.0.0.0:*                           1853/rpc.statd 
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           2210/avahi-daemon:
udp        0      0 0.0.0.0:111             0.0.0.0:*                           1841/portmap   
udp        0      0 0.0.0.0:757             0.0.0.0:*                           1853/rpc.statd 
udp        0      0 0.0.0.0:631             0.0.0.0:*                           2279/cupsd     
udp6       0      0 :::60708                :::*                                2210/avahi-daemon:
udp6       0      0 :::5353                 :::*                                2210/avahi-daemon:
raw        0      0 0.0.0.0:1               0.0.0.0:*               7           5594/dhcpd3    

suivent les sockets....


L'install du serveur ltsp ne pose aucun problème particulier si ce n'est la post-config qui échoue sur le démarrage du serveur dhcp.
Il suffit de recopier le fichier /etc/ltsp/dhcpd.conf dans /etc/dhcp3 après l'avoir adapté et de démarrer le service.

Fichiers de configuration des différents services lancés:

esxi:~# cat /etc/dhcp3/dhcpd.conf
#
# Default LTSP dhcpd.conf config file.
#

authoritative;

subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.180 192.168.0.182;
    option domain-name "net.caen";
    option domain-name-servers 192.168.0.23;
    option broadcast-address 192.168.0.255;
    option routers 192.168.0.254;
    next-server 192.168.0.69;
#    get-lease-hostnames true;
    option subnet-mask 255.255.255.0;
    option root-path "/opt/ltsp/amd64";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/amd64/pxelinux.0";
    } else {
        filename "/ltsp/amd64/nbi.img";
    }
}



esxi:~# cat /etc/inetd.conf |grep -E -v '^$|^#'
ftp        stream    tcp    nowait    root    /usr/sbin/tcpd    /usr/sbin/in.ftpd
tftp           dgram   udp     wait    root  /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
9571           stream  tcp     nowait  nobody /usr/sbin/tcpd /usr/sbin/ldminfod
9572            stream  tcp     nowait     nobody /usr/sbin/tcpd /usr/sbin/nbdswapd


esxi:~# cat /etc/default/tftpd-hpa
#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"

esxi:~# cat /opt/ltsp/amd64/etc/lts.conf

[default]
    #SOUND=False
    LOCALDEV=True
    CONFIGURE_X=True
    X_COLOR_DEPTH=16
    MODULE_01 = usb-uhci
    MODULE_02 = usbhid
    MODULE_03 = usbkbd
    SCREEN_02 = rdesktop -f 192.168.0.155 -u pme -K
   

esxi:~# cat /etc/nbd-server/config
[generic]
    user = nbd
    group = nbd

esxi:~# cat /etc/exports

/opt/ltsp       *(ro,no_root_squash,async,no_subtree_check)



L'install de ltsp s'effectue par: apt-get install ltsp-server-standalone (les dépendances seront gérées : nfs-kernel-server, etc...)

Lorsque c'est terminé, il suffit de construire l'environnement du client par un simple: ltsp-build-client.

A ce titre il est intéressant de noter que l'environnement client ainsi construit sera basé sur la même architecture que le
serveur. Dans mon cas le kernel du client était un amd64 donc. Si l'on souhaite booter des stations ne disposant pas d'un processeur 64 bits,
il faut installer l'environnement i386. Je ne sais pas s'il existe une manip particulière car l'aide de ltsp-build-client n'est pas très fournie.
Il faudra passer l'option --arch=i386 sur la ligne de commande. Il sera également possible de préciser un miroir local (exemple pat-cacher-ng) avec l'option --mirror


Je disposais cependant d'un autre serveur ltsp (cf tests de l'année dernière) et j'ai simplement recopié (!) les fichiers de celui-ci vers mon serveur actuel.

Ensuite il me suffit de modifier le fichier de config de dhcp pour booter des stations i386 ou amd64.


On retrouve alors cette arborescence:

esxi:/opt/ltsp# ll
total 16
drwxr-xr-x  4 root root 4096 avr 20 18:37 .
drwxr-xr-x  4 root root 4096 avr 17 19:20 ..
drwxr-xr-x 20 root root 4096 avr 18 17:54 amd64
drwxr-xr-x 20 root root 4096 avr 17  2009 i386

esxi:/var/lib/tftpboot/ltsp# ll
total 16
drwxr-xr-x 4 root root 4096 avr 20 18:41 .
drwxr-xr-x 3 root root 4096 avr 17 18:57 ..
drwxr-xr-x 3 root root 4096 avr 17 19:28 amd64
drwxr-xr-x 3 root root 4096 avr 11 17:46 i386

Il faudra ensuite jongler avec le fichier de conf du serveur dhcp:

Exemple config amd64:

esxi:/etc/dhcp3# cat dhcpd.conf.amd64
#
# Default LTSP dhcpd.conf config file.
#

authoritative;

subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.180 192.168.0.182;
    option domain-name "net.caen";
    option domain-name-servers 192.168.0.23;
    option broadcast-address 192.168.0.255;
    option routers 192.168.0.254;
    next-server 192.168.0.69;
#    get-lease-hostnames true;
    option subnet-mask 255.255.255.0;
    option root-path "/opt/ltsp/amd64";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/amd64/pxelinux.0";
    } else {
        filename "/ltsp/amd64/nbi.img";
    }
}


Exemple config i386:

esxi:/etc/dhcp3# cat dhcpd.conf.i386
#
# Default LTSP dhcpd.conf config file.
#

authoritative;

subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.180 192.168.0.182;
    option domain-name "net.caen";
    option domain-name-servers 192.168.0.23;
    option broadcast-address 192.168.0.255;
    option routers 192.168.0.254;
    next-server 192.168.0.69;
#    get-lease-hostnames true;
    option subnet-mask 255.255.255.0;
    option root-path "/opt/ltsp/i386";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/i386/pxelinux.0";
    } else {
        filename "/ltsp/i386/nbi.img";
    }
}

Ceci dit il serait possible de faire quelque chose de plus propre en testant l'architecture du client mais
je ne sais pas faire ... pour l'instant.

J'ai ensuite testé tout le processus de démarrage et tout allait pour le mieux jusqu'au moment où apparaissait l'écran de
connexion de rdesktop. En effet impossible de taper quoi que ce soit au clavier alors que la souris était parfaitement opérationnelle.

Voir : http://www.pmenier.info/vids/ltsp-vm.avi

J'ai donc contourné le problème de cette façon:

Modif du fichier lts.conf comme ceci:

esxi:~# cat /opt/ltsp/amd64/etc/lts.conf

[default]
    #SOUND=False
    LOCALDEV=True
    CONFIGURE_X=True
    X_COLOR_DEPTH=16
    MODULE_01 = usb-uhci
    MODULE_02 = usbhid
    MODULE_03 = usbkbd


Puis lorsque le client a démarré j'ai sélectionné le menu Préférences puis Sessions et j'ai ajouté la ligne de commande qui va bien:
/usr/bin/rdesktop -f 192.168.0.155  (192.168.0.155 étant l'IP de la machine virtuelle XP)

On retrouve cette modification dans le home de l'utilisateur (côté serveur) :

esxi:/home/pme/.config/autostart# cat rdesktop.desktop

[Desktop Entry]
Type=Application
Encoding=UTF-8
Version=1.0
Name=Sans nom
Name[fr_FR]=rdesktop
Exec=/usr/bin/rdesktop -f 192.168.0.155
X-GNOME-Autostart-enabled=true


Résultat : http://www.pmenier.info/vids/ltsp-vm-2.avi   (vidéo 14 Mo)