LTSP

De Wiki de Nelly & Richard
Sauter à la navigation Sauter à la recherche

Présentation

LTSP : Linux Terminal Server Project (Site officiel)

Installation

Généralités

Partitionnement

  • Une seule partition ext3 en plus de la swap suffira.
  • On pourrait éventuellement séparer le dossier contenant le thin client : /opt

fichier lts.conf

fichier lts.conf
# /opt/ltsp/<arch>/etc/lts.conf
[default]
   SOUND=True
   LOCALDEV=True
   CONFIGURE_X=True
   #X_COLOR_DEPTH=16
   # resolution
   #X_MODE_0=800x600
   # where do you want your syslog messages ;)
   SYSLOG_HOST=server
   # authentication for Xauthority
   LDM_DIRECTX=True

Construction client léger

  • Suivant l'architecture de votre serveur il sera peut-être nécessaire de reconstruire votre thin client :
ltsp-server:~# rm -fr /opt/ltsp/i386/
ltsp-server:~# ltsp-build-client --arch i386

DHCP

Depuis la version 5 de LTSP le client n'utilise plus dhclient pour faire sa requête dhcp mais ipconfig issue du paquet klibc-utils.

Si nous avons le cas de deux serveurs LTSP ou dans le cas d'autres systèmes GNU/Linux utilisant ipconfig :

- Il est possible de modifier le VCI afin de personnaliser :
- dans le fichier /opt/ltsp/i386/usr/share/initramfs-tools/scripts/functions et ajouter l'option "-i VCIperso" aux 3 ou 4 lignes contenant ipconfig
- chroot dans le thin client update-initramfs -u
- ltsp-update-kernels sur le serveur

La plupart des systèmes GNU/Linux utilisant dhclient :

Sur votre client le fichier /etc/dhclient.conf

option client-dhclient code 222 = text;
send client-dhclient "linux dhclient";

Cette configuration dhcp permet de séparer les baux dhcp sur 2 plages différentes :

  • Les clients légers font une premières requête DHCP bootp pour charger le fichier pxelinux.0 (pool pxe etherboot)
  • Il font ensuite une deuxième requête DHCP par l'intermédiare de ipconfig ayant pour VCI "Linux ipconfig" (pool ltsp)
  • Les clients ayant pour hostname sysresccd se retrouve dans la pool specific host
  • Les clients windows, linux (dhclient, udhcp, dhcpd, pump, ...) (pool other clients)

fichier dhcpd.conf

#
# dhcpd configuration files by richard
#

authoritative;
# to known the client's VCI string
# wrote with all leases in the /var/lib/(dhcp)|(dhcp3)/dhcpd.leases
set vci-string = option vendor-class-identifier;

# option clientbubuntu code 222 = text;
#
# class "dhclient" {
#   match if option client-dhclient = "linux dhclient";
# }

# def class of members PXE client
class "pxe etherboot" {
    match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
}
# def class of members LTSP
class "ltsp" {
    match if option vendor-class-identifier = "Linux ipconfig";
}
# def class of members specific hostname
class "specific host" {
    match if option host-name = "sysresccd";
}

# define main subnet 192.168.0.0/16 class B
subnet 192.168.0.0 netmask 255.255.0.0 {
    option domain-name "example.com";
    option domain-name-servers 192.168.0.1;
    option routers 192.168.0.1;
    option broadcast-address 192.168.255.255;
    option subnet-mask 255.255.0.0;
    # def range and options for specific hostname
    pool {
        allow members of "specific host";
        range 192.168.0.101 192.168.0.150;
    }
    # def range and options for LTSP clients
    pool {
        allow members of "ltsp";
        range 192.168.0.200 192.168.0.250;
        option root-path "192.168.0.254:/opt/ltsp/i386";
    }
    # def range and options for PXE boot clients
    pool {
        allow members of "pxe etherboot";
        range 192.168.0.151 192.168.0.199;
        next-server 192.168.0.254;
        if substring(option vendor-class-identifier, 0, 9) = "PXEClient" {
            filename "/ltsp/i386/pxelinux.0";
        } else {
            filename "/ltsp/i386/nbi.img";
        }
    }
    # def range and options for other clients
    pool {
        deny members of "specific host";
        deny members of "pxe etherboot";
        deny members of "ltsp";
        range 192.168.0.50 192.168.0.100;
    }
}

TCP wrappers

fichier /etc/hosts.allow
# admin + ltsp
sshd: 192.168.0.0/16
in.tftpd: 192.168.0.0/16

# nfs
#portmap: 192.168.0.0/16
#nfsd: 192.168.0.0/16
#mountd: 192.168.0.0/16
fichier /etc/hosts.deny
ALL: ALL

Spécificités

debian lenny

  • Installation de la lenny
  • Installation du paquet :
ltsp-server:~# apt-get install ltsp-server-standalone

Construction du client

ltsp-server:~# ltsp-build-client

trivial ftp

  • Commenter la ligne tftp ... du fichier /etc/inetd.conf
  • Redémarrage du démon inetd :
ltsp-server:~# /etc/init.d/inetutils-inetd restart
  • Modification du fichier /etc/default/tftpd-hpa pour qu'il tourne en mode démon.
  • Redémarrage de tftpd-hpa :
ltsp-server:~# /etc/init.d/tftpd-hpa restart

syslog

  • Soit un log sur le serveur :
ltsp-server:~# echo "*.*            @${DEFAULT_SERVER}" > /etc/syslog.conf
  • Soit un log sur le client mais perdu au reboot :
ltsp-server:~# echo "*.*            -/var/log/messages" > /etc/syslog.conf

K12 LTSP

  • Rien à faire tous les fichiers de configurations du LTSP se trouvent dans le dossier /etc/ltsp

Serveur dhcp

  • Un script de démarrage du dhcp spécifique au LTSP : /etc/init.d/ltsp-dhcpd

ubuntu LTSP

  • Depuis une ubunutu alternate qu'il est possible de télécharger ici
  • Sélectionner dans les options : ltsp server

Serveur inetd

ltsp-server:~# update-inetd --disable tftpd
  • Commentez la ligne commencant par tftp
ltsp-server:~# sed -i 's/^\(tftp\)/#\1/' /etc/inetd.conf
  • Fichier /etc/default/tftpd-hpa

Passage en mode démon.

ltsp-server:~# /etc/init.d/tftpd-hpa start