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
# service gdm3 stop
# nano /etc/gdm3/daemon.conf [daemon] NoConsole=true [xdmcp] Enable=true
# service gdm3 start
# apt-get install ltsp-server-standalone
# apt-get install ltsp-server
# mkdir /etc/ltsp/
# 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
ltsp-build-client
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
service tftpd-hpa start
apt-get install isc-dhcp-server
nano /etc/dhcp/dhcpd.conf include "/etc/ltsp/dhcpd.conf"; allow bootp; allow booting;
service isc-dhcp-server restart
apt-get install nfs-common nfs-kernel-server
# nano /etc/exports /opt/ltsp *(ro,no_root_squash,async,no_subtree_check)
# service nfs-common start # service nfs-kernel-server start
# showmount [ip_du_serveur] -e
# showmount 192.168.1.55 -e Export list for 192.168.1.55: /opt/ltsp * #
# nano /etc/default/portmap
OPTIONS = "-i 127.0.0.1"
service portmap restart
# apt-get install xdm
# 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
# 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
# nano /etc/X11/xdm/Xaccess # Pour les requêtes directes * # Pour les requêtes indirectes * CHOOSER BROADCAST
# 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-*
# service xdm start
# netstat -apn | grep ":177 " udp6 0 0 :::177 :::* 1643/gdm3
# 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"
# nano /etc/ltsp.conf : # # Configuration variables for LTSP # LTSP_ETH_INTERFACE=eth0
# service tftpd-hpa restart
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
# ltspadmin
# ltsp-update-kernels Updating /var/lib/tftpboot directories for chroot: /opt/ltsp/i386 Updating /srv/tftp directories for chroot: /opt/ltsp/i386
Et que le répertoire est accessible depuis le réseau.option root-path "/opt/ltsp/i386";
/usr/X11R6/bin/X -broadcast /usr/X11R6/bin/X -query ip_du_serveur