Chez JL

Joliciel Libre

Accueil > Informatique > GNU/Linux > Ancien > LTSP - Debian 5

LTSP - Debian 5

lundi 7 mars 2011

 Installation

Serveur LTSP

#apt-get install ltsp-server

Paquet ltsp-server-standalone si on veut inégrer le serveur d’application. Dans la suite, le serveur d’appli est un autre.

# ltsp-build-client
# ltsp-update-sshkeys
# ltsp-update-image
# vi /etc/exports
# LTPS  
/opt/ltsp       *(ro,no_root_squash,async,no_subtree_check)
# /etc/init.d/nfs-kernel-server reload
# /etc/init.d/tftpd-hpa restart
# apt-get install dhcp3-server
#vi /etc/default/dhcp3-server
INTERFACES="eth0"

voir /etc/dhcp3/dhcpd.conf

#  le serveur authoritaire
authoritative;

# option definitions common to all supported networks...
option domain-name "mondomaine.fr";
option domain-name-servers 192.168.0.254;
option subnet-mask 255.255.255.0;
#default-lease-time 600;
#max-lease-time 7200;

subnet 192.168.0.0 netmask 255.255.255.0 {
       option routers 192.168.0.254;
}
[...]

group {
       use-host-decl-names true;
       #### Parametrage LTSP
       # addresse IP du serveur TFTP
       next-server 192.168.0.1;
       # emplacement du chroot LTSP
       option root-path "/opt/ltsp/i386";
       option root-path "/opt/ltsp/i386";

       # emplacement des images à charger au boot
       if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
               filename "/ltsp/i386/pxelinux.0";
       }
       else {
               filename "/ltsp/i386/vmlinuz";
       }
       host cl1 {
               hardware ethernet 00:08:54:EE:EE:EE;
               fixed-address 192.168.0.11;
       }

       host cl2 {
               hardware ethernet 00:08:54:EE:EE:EF;
               fixed-address 192.168.0.12;
       }
}

# /etc/init.d/dhcp3-server restart

 Creation de disquette boot carte réseau pour les cl

Certains pcs, même ancien, n’ont pas besoin de disquette de boot car ils peuvent être configurés pour démarrer directement sur le réseau, depuis le bios.

Exemple activation boot PXE dans un bios :
- bios, advanced, chipset, southBridge Conf, LAN Optional ROM, sauver et quitter bios
- redémarrage, retourner dans le bios, aller dans option boot, le nouveau choix apparait

Pour la création de disquette, le problème est que les nouveaux pc n’ont pas de lecteur disquette.
Solution :
- démarrer une vieux pc ayant un lecteur de disquette, avec un live CD (il faut quand même assez de RAM)

les rom sont trouvées sur :
- http://www.rom-o-matic.net/
- il y a eu du nouveau depuis, prendre gPXE
- prendre la dernière version
- prendre le bon pilote

  • utiliser "lspci -n" pour voir le PCI Id du matériel et le retrouver dans la listt
    e
  • pour ovislinf evo-8139itx prendre rtl8139:rtl8139
    - *pour carte réseau pc1, pc3... : eepro100:eepro100
    - cliquer sur configure :
  • ASK_BOOT : vide ou négatif pour avoir démarrage direct
  • BOOT_FIRST : BOOT_NIC

exemple
- démarrer sur CD system rescue
- configuration réseau :
net-setup eth0, faire en manuel ip : 192.168.3.106, dns : ip du dns
- récupérer image de la disquette sur le réseau par scp :
scp serveur :/home/.../disquetteboot/...dsk .
- mettre une disquette vierge
- commende de création :
dd if=bin/gpxe.dsk of=/dev/fd0

création disquette marche pas depuis linux

dd if=sbootmgr.dsk of=/dev/fd0
Fait depuis Windows avec rawrite graphique, et mettre *.img à la place de *.zdsk (ou faire afficher tous les fichier)

plantage démarrage du client, trouve bien dhcp et chemin du noyau, chargement, mm
ais manque surement de mémoire vive...
passe de 32 à 64, meme probleme

il faut modifier la config du serveur dhcp, en ajoutant une ligne

host cl4 {
               hardware ethernet 00:90:27:EE:EE:EE;
               fixed-address 192.168.0.14;
               filename "/ltsp/i386/pxelinux.0";
}

 Configuration des terminaux

à faire en root dans le chroot %

# chroot /opt/ltsp/i386
% dpkg-reconfigure locales
% apt-get install console-data
%  dpkg-reconfigure console-data

Prendre : pc / azerty / French / Same as X11 (latin9) / Standard

 mise à jour des clients

A voir : peut être monter /dev/pts, car message :

Impossible d'écrire le journal, échec d'openpty()
(/dev/pts est-il monté ?)
mount --bind /proc/ /opt/ltsp/i386/proc/
mount --bind /dev/ /opt/ltsp/i386/dev/
mount --bind /sys/ /opt/ltsp/i386/sys/
# chroot /opt/ltsp/i386
% apt-get update ; apt-get upgrade ;
% apt-get autoremove
% apt-get clean
si le noyau est mis à jour noyau, faire aussi la commande suivante, sans etre dans le chroot
% exit
# umount /opt/ltsp/i386/proc/
# umount /opt/ltsp/i386/dev/
# umount  /opt/ltsp/i386/sys/
# ltsp-update-kernels
# ltsp-update-image
eventuellement :
ltsp-update-sshkeys

Autre installation de paquet

# chroot /opt/ltsp/i386
% apt-get install rdesktop

Ajouter le script rdesktop dans : /opt/ltsp/i386/usr/lib/ltsp/screen.d/

#!/bin/sh
#
# The following script works for LTSP v5 and was tested in Ubuntu "Feisty" Linux.
# Original rdesktop script by James A. McQuillan,
# modified for LTSP v5 by Colin Osterhout of SERRC (www.serrc.org).
#
# This software is licensed under the Gnu General Public License.
# The full text of which can be found at http://www.LTSP.org/license.txt
#
#
#
# /opt/ltsp/i386/etc/screen.d/rdesktop
#
# Call this through /opt/ltsp/i386/etc/lts.conf like this:
#           RDP_OPTIONS  = "-a 16"
#           RDP_SERVER   = w2k3.terminal.server.ip
#           SCREEN_02    = rdesktop
#

PATH=/bin:$PATH; export PATH
. /usr/lib/ltsp/ltsp_functions

# Get the lts.conf entries
eval `/usr/bin/getltscfg -a`

RDP_OPTIONS=${RDP_OPTIONS:-"-f"}

reg_info RDP_SERVER
reg_info RDP_OPTIONS

TTY=`/usr/bin/basename \`/usr/bin/tty\``
XFCFG=/tmp/XF86Config.${TTY}
export TTY

RDESKTOP_OPTIONS="${RDP_OPTIONS} -f $* ${RDP_SERVER}"

#
# Setup the DISP variable
#
TTY_N=`echo $TTY | sed -e 's/^.*\([0-9]\)$/\1/'`
export DISP=:$(expr ${TTY_N} - 1).0

################################################################################
#
# Setup the XF86Config file
#
while :; do
/usr/bin/xinit      /usr/bin/rdesktop           \
                           -u "" \
                         ${RDESKTOP_OPTIONS}         \
                         -- \
                         ${DISP}                     \
                         ${TTY}
#/usr/bin/x11vnc -display ${DISP} -passwd password -httpport 5800
done

exemple de script :
- http://www.akgeeks.net/ltsp-w2k3

Rendre executable : chmod a+x rdesktop

 Configuration lts.conf

Voir la liste des options :
/opt/ltsp/i386/usr/share/doc/ltsp-client/examples/lts.conf

Exemple de fichier de configuration /opt/ltsp/i386/etc/lts.conf

[default]
 CONSOLE_KEYMAP = "fr"
 XKBLAYOUT = "fr"
 LOCALDEV=True
 SYSLOG_HOST = nom_serveur_ltsp
 # imprimante USB
 PRINTER_0_TYPE  = S
 PRINTER_0_DEVICE = /dev/usb/lp0
 MODULE_01 = usblp
 # peripherique de stockage locaux
 #MODULE_02 = "usb-storage"
 #MODULE_03 = "sd_mod"
 X_MODE_1  = 1024x768

[192.168.0.101]
 X_MODE_1  = 1280x1024
 SCREEN_07 = startx -query 192.168.0.8
 SCREEN_08 = startx -query 192.168.0.8

[192.168.0.102]
 X_MODE_1  = 1024x768
 SCREEN_07 = startx -query 192.168.0.8
 SCREEN_08 = "rdesktop -x l -k fr -a 16 serveurwin"
 PRINTER_0_TYPE  = P
 PRINTER_0_DEVICE = /dev/lp0

Faire démarrer sur XDMCP : startx

# /opt/ltsp/i386/lts.conf
# Parmétrage par defaut des clients
[default]
       SCREEN_07 = startx
       CONSOLE_KEYMAP = "fr"
       XKBLAYOUT = "fr"
 LOCALDEV=True
#[192.168.0.104]

Voir en cas d’erreur

Pour accéder au serveur xdmcp depuis un poste sous Linux :

# X -query serveurappli :1

Passage d’un écran à l’auter avec ctrl+alt+F7 et ctrl+alt+F8

Quel débit pour RDP ?

A useres session needs roughly 20kbit for a Citrix session, and 30kbit for a Tee
rminal Server session. Latency should be under 150 to operate smoothly.

Mémoire vive pour le serveur : 256 + 50 x nb de terminaux

RDP, port 3389 par défaut

 Gestion de log

=> revoir en utilisant rsyslog

# apt-get install syslog-ng
# vi /etc/syslog-ng/syslog-ng.conf

#  If you wish to get logs from remote machine you will need this server
# to listen upon port 514.
#
source remote { udp(); };
#
# Automatic host sorting
# Store all files beneath '/var/log/NAME OF MACHINE/facility
# Create these directories if required, with the given permissions.
#
destination hosts { file("/var/log/HOSTS/$HOST/$FACILITY.log" owner(root)
 group(root) perm(0600) dir_perm(0700) create_dirs(yes)); };
 #
 # log by host (as defined above) anything that's coming from the
 # remote socket.
 #
 log { source(remote); destination(hosts); };

relancer service :

/etc/init.d/syslog-ng restart
vi /opt/ltsp/i386/etc/lts.conf
[default]
SYSLOG_HOST = nomduserveur

redemarrer le client leger, les log sont sur le serveur dans /var/log/HOSTS

Pour une imprimante usb

[192.168.3.106]
       SCREEN_07 = startx -query 192.168.3.204
       SCREEN_08 = startx -query 192.168.3.208
       X_MODE_1        = 1024x768
       PRINTER_0_DEVICE = /dev/usb/lp0
       PRINTER_0_TYPE  = S
       MODULE_01       = usblp

redémarrer client léger, voir si service lancer :

# nmap pc6 | grep 9100
9100/tcp open  jetdirect

sur une autre serveur cups :

socket://pc6:9100
assez ancien, n’a pas marché

installation pour la gestion des périphériques usb
# apt-get install ltspfs ;
chroot
% apt-get install ltspfs ;
# echo "fuse" >> /etc/modules
# adduser touraine-jl fuse

https://wiki.ubuntu.com/DebugLocalDev
ctrl+alt+F1 sur le client léger
se connecter (avoir activer la connexion avant)
connecter la clé usb
regarder dmesg si clé bien vue
regarder /var/run/ltspfs_fstab