Thin-clients server
Sauter à la navigation
Sauter à la recherche
Introduction
Il peut-être utile pour un environnement où l'utilisation des postes clients est publique, de mettre en place un serveur de terminaux légers. Que ce soit en termes de maintenance, d'administrations ou simplement pour utiliser des postes de travail obsolètes.
Je vais montrer ici comment construire votre serveur de terminaux légers, si vous préféré utiliser LTSP vous trouverez des informations ici.
Considérations
- Réseau : 192.168.0.0/16
- Serveur DHCP : 192.168.0.1
- Serveur TFTP : 192.168.0.1
- Serveur HTTP : 192.168.0.1
- Serveur NBD : 192.168.0.1
- Packages installés : syslinux-common (ou les sources de syslinux) / tftpd-hpa / apache2 / isc-dhcp-server / nbd-server (uniquement pour sysrcd)
- client-léger 1 : SystemRescueCD
- client-léger 2 : Installation ArchLinux x86_64
Arborescence de /var/www/pxe
. |- arch | |- initrd64.img # livecd Arch | `- vm64 # livecd Arch |- pxelinux.cfg | |- default | `- vesamenu.c32 # syslinux-common `- sysrcd |- initram.igz # livecd sysrcd |- rescue32 # livecd sysrcd |- sysrcd.dat # livecd sysrcd `- sysrcd.md5 # livecd sysrcd
TFTP + syslinux
- Pour ceux qui ne souhaitent pas utiliser HTTP mais tout en TFTP le fichier pxelinux.0 fournit avec syslinux-common suffira. L'arborescence se trouvera du coup dans /var/lib/tftpboot bien sûr.
file /var/lib/tftpboot/gpxe_custom.txt
#!gpxe dhcp net0 set 209:string pxelinux.cfg/default set 210:string http://192.168.0.1/pxe/ chain ${210:string}pxelinux.0
build gpxe_custom.0
Compilation
- Télécharger les sources : http://etherboot.org/wiki/download
- Compilation avec le script
root@serveur:source# make EMBEDDED_IMAGE=/var/lib/tftpboot/gpxe_custom.txt,/usr/lib/syslinux/pxelinux.0
etherboot ROM-o-matic
- ROM-o-matic
- Selectionnez Customize
- Choisissez PXE bootstrap loader image [Unload PXE stack] (.pxe)
- Insérez le script gpxe
file /var/www/pxe/pxelinux.cfg/default
# default options KBDMAP pxelinux.cfg/fr.ktl PROMPT 0 NOESCAPE 1 DEFAULT pxelinux.cfg/vesamenu.c32 TIMEOUT 30 # menu definition MENU TITLE Make your choice... LABEL rescuecd MENU DEFAULT MENU LABEL ^Sytem Rescue CD over the LAN KERNEL /sysrcd/rescue32 setkmap=fr netboot=nbd://192.168.0.1:2000 dostartx APPEND initrd=/sysrcd/initram.igz LABEL arch64 MENU LABEL Install archlinux over the LAN (64bits) KERNEL /arch/vm64 APPEND initrd=/arch/initrd64.img
DHCP
- L'option next-server indique le serveur TFTP à contacter.
- L'option filename indique le fichier à récupérer TFTP (Trivial FTP est un protocole qui ne peut lister comme ftp)
file /etc/dhcp/dhcpd.conf
authoritative; subnet 192.168.0.0 netmask 255.255.0.0 { # deny unknown-clients; option domain-name-servers 192.168.0.1; option domain-name "network.local"; option subnet-mask 255.255.255.0; option routers 192.168.0.1; option broadcast-address 192.168.0.255; authoritative; range 192.168.0.2 192.168.254.254; next-server 192.168.0.1; filename "/gpxe_custom.0"; }
NBD
- NBD (Network Block Device est un module permettant de présenter une partition à la manière du protocole AoE (ATA over Ethernet).
- Il est utilisé ici pour présenter le fichier squashfs de SystemRescueCD.
file /etc/nbd-server/config
[generic] user = nbd group = www-data listenaddr = 192.168.0.1 # authfile = /etc/nbd-server/allow [export] exportname = /var/www/pxe/sysrcd/sysrcd.dat port = 2000
Client
- F12 ou autre bricole pour booter sur le réseau devrait suffir ;)