LTSP
Inhaltsverzeichnis
LTSP - Linux Terminal Server Projekt
Einführung
Das Linux Terminal Server Projekt (LTSP) dient als eine Art Framework, um eine Umgebung einzurichten, die es erlaubt, einfache Thin Clients (Rechner mit minimaler Ausstattung und zumeist ohne Festplatte) über das Netzwerk zu starten und Anwendungen auf dem Server zu benutzen.
Diese Art der Umgebung war in den frühen Anfangszeiten der EDV gang und gäbe. Es gab einen Hauptrechner, der alle Dienste und Daten bereit hielt, und die dazugehörigen Terminals, welche nur aus einem Monitor und einer Tastatur bestanden, mit Informationen versorgte. Einer der Hauptgründe lag darin, dass die Kapazitäten der normalen Rechner zum einen nur sehr eingeschränkt waren, und zum anderen sehr teuer.
Mit der Zeit kam diese Art der Verwendung der Rechner "aus der Mode", als die Preise sanken und die Rechenleistung stieg und somit auch der Benutzer zu Hause sich einen leisten konnte. Noch heute lassen sich zumeist in Universitäten und Bibliotheken, solche Strukturen auffinden.
Die Vorteile bestehen darin, dass die Administratoren nur den Hauptserver verwalten müssen. Sämtliche Anwendungen müssen nur ein einziges Mal installiert und eingerichtet werden, um jedem zur Verfügung zu stehen. Weitere Kostenvorteile liegen darin begründet, dass die Stromkosten gesenkt und die Ausstattung der Clients sehr einfach gehalten werden kann. Die Clients (auch Terminals od. Thins genannt) benötigen nur noch einen Bildschirm, Eingabe- und Ausgabegeräte. Die Rechenleistung und Arbeitsspeicher sind nur noch so schnell, um ein Bild flüssig aufbauen zu können.
Doch es gibt auch Nachteile. Fällt der Hauptserver einmal aus, und es steht kein Backupserver zur Verfügung, können sämtliche Clients nicht mehr ihrer Arbeit nachgehen. Für größere Unternehmen kann dies sehr hohe Kosten verursachen, die die eingesparten Gelder wieder tilgen. Ein durchdachte Planung ist in diesen Umgebungen unerlässlich.
Auf der Client Seite dagegen, kann bei einem Defekt einfach der Rechner getauscht werden, und der Benutzer kann innerhalb von wenigen Minuten seine Arbeit fortsetzen.
Voraussetzungen
Da sämtliche Aufgaben vom Client auf den Server übertragen werden, muss der Server über eine entsprechende Ausstattung verfügen. Dabei ist das Augenmerk weniger auf eine starke CPU zu legen, als viel mehr auf Arbeitsspeicher und schnellen Festplatten. Je nach Anzahl der Client und den genutzen Programmen, sollte der Server über mehr als einen Gigabyte Ram und Festplatten mit 7200 U/min besitzen. Als Faustregel gilt pro Client zwischen 10-20 MB Ram. Wird OpenOffice und Co genutzt, sollten 25-30MB angelegt werden.
Um Kosten auf der Serverseite zu reduzieren, würde es sich empfehlen statt einem SCSI System, die Festplatten über SATA2 und Raid5 zu konfigurieren. Die Daten für /home und der SWAP Partition sollten dabei nicht auf der System Platte liegen.
Steht ein ensprechender Switch zur Verfügung, der Channel Bounding unterstützt (das Verbinden von mehr als einer Netzwerkkarte zu Einer), kann dies den transfer der Daten über das Netz erheblich beschleunigen und sollte in jedem Fall genutzt werden. Wer es sich leisten kann, sollte Netzwerkkarten verwenden, die eine richtige CPU besitzen und nicht die Hauptarbeit auf die Server CPU legen, wie die allseits beliebten Realtek Karten.
Für den Client reicht ein PC, der über einen Monitor, Tastatur und einen bootfähigem Medium (CD-Rom/Floppy/ PXE Netzwerkkarte) verfügt. Die Rechenleistung ist zweitrangig, allerdings sollte es kein 486'er mehr sein, mit ISA Slots und Co., da zum einen der Bildaufbau rucklig werden könnte, zum anderen das Setup des Rechners nur erschwert (IRQ und I/O Jumper).
Wer alle Vorzüge ausnutzen möchte, kann auch speziell für diese Einsatzzwecke sogegannte "Thin-Clients" erwerben. Diese sind in der Regel Lüfter- und Plattenlos und somit nahezu gräuschlos. Auch begnügen sie sich mit nur wenigen Watt an Leistung. Die meisten verfügen über Kopfhöreranschlüsse, USB Steckplätze für mobile Datenträger und Drucker. Optische Laufwerke sind meist gegen Aufpreis erhältlich.
Ein eigenes Betriebsystem (Linux/Windows CE) können sie von einem Flashmedium starten, und stellen eine einfache Umgebung bereit. Dort lassen sie sich auf vielfältige Weise in eine Umgebung integrieren. Sei es per RDP (Windows), Citrix (proprioriätres Protokoll), X oder VNC. Einige stellen sogar Anwendungen wie einen Browser bereit, um den Server so zu entlasten.
Ziel
Das Ziel welches hier erreicht werden soll, besteht darin einen Terminal Server mit Hilfe der Software LTSP einzurichten. Der Client bezieht seine Startinformationen per PXE und per Diskette (für diejenigen, die keine PXE fähigen Netzwerkkarten besitzen) und mountet seine Verzeichnisse per NFS. Die Umgebung für den Client besteht aus einem Ubuntu Desktop, auf dem alle Anwendungen für den täglichen Gebrauch installiert wurden. Desweiteren möchten wir auch ein wenig Musik beim arbeiten hören und unsere kreativen Werke auf dem USB-Stick ablegen. Später soll ein USB Drucker oder USB Scanner dort ebenfalls seine Arbeit aufnehmen können.
Unter Umständen wird auch freeNX mit eingebunden, sodass wir auch aus der Ferne komfortabel arbeiten können, aber dies steht noch in den Sternen.
Aller Anfang ist leicht
Dieses HowTO benutzt Ubuntu Dapper Drake (6.0.1) als Grundlage. Da eine komplette Desktop Umgebung von Vorteil ist, wurde Ubuntu als normaler Desktop PC eingerichtet - sprich - eine Standardinstallation vorgenommen wurde. Da hier nur eine Testumgebung eingerichtet wird, spare ich mir ein aufwendiges Festplatten Setup mit LVM, Raid und Konsorten. Bei Produktivsystemen ist davon jedoch dringend abzuraten.
Der Rechner ist ein alter PIII mit 700Mhz und 512MB SD-Ram, ausreichend für ein od. zwei Clients.
Benötigte Software
Hinweis: Unter Ubuntu sollte das Universe Archiv aktiviert werden, in der /etc/apt/sources.list Datei. Um die nachfolgenden Befehle ausführen zu können, benötigt man root Rechte. Um Dauerhaft diese Rechte für die Installtion zu behalten, kann man sudo -i im Terminal eingeben oder startet gleich den Root-Terminal.
Für eine LTSP fähige Umgebung benötigen wir einige Programme. Je nach Distribution müssen die entsprechend installert werden. Unter Debian basierten distributionen, hilft es sich die Abhängigkeiten anzuschauen:
root@ltsp:~# apt-get install ltsp-server-standalone Reading package lists... Done Building dependency tree... Done The following extra packages will be installed: binutils debootstrap dhcp3-server libevent1 libnfsidmap1 ltsp-server netkit-inetd nfs-common nfs-kernel-server portmap syslinux tftpd-hpa Suggested packages: binutils-doc sdm audiooss The following NEW packages will be installed: binutils debootstrap dhcp3-server libevent1 libnfsidmap1 ltsp-server ltsp-server-standalone netkit-inetd nfs-common nfs-kernel-server portmap syslinux tftpd-hpa 0 upgraded, 13 newly installed, 0 to remove and 2 not upgraded. Need to get 0B/2320kB of archives. After unpacking 10.0MB of additional disk space will be used. Do you want to continue [Y/n]?
Da wir LTSP von Hand installieren wollen, picken wir unsere Pakete heraus (die Gentoo Anwender sind fein raus, sie haben einen passenden Schalter):
# apt-get install binutils debootstrap dhcp3-server libevent1 libnfsidmap1 netkit-inetd nfs-common nfs-kernel-server portmap syslinux tftpd-hpa make
Der DHCP Server wird zwar versucht zu starten, aber aufgrund einer fehlerhaften Konfigurationsdatei, ist dies nicht möglich.
Damit wäre schonmal das gröbste installiert. Als nächsten besorgen wir uns das LTSP Paket ltsp-utils, welches die Programme an Ort und stelle kopiert, welche wir gleich benötigen:
# mkdir /usr/src/ltsp # cd /usr/src/ltsp # wget http://ltsp.mirrors.tds.net/pub/ltsp/utils/ltsp-utils-0.25-0.tgz
LTSP und Hosts Vorbereiten
Dieses wird entpackt und das ./install.sh Script gestartet:
# tar xvzf ltsp-utils-0.25-0.tgz # cd ltsp-utils # ./install.sh
Danach können wir das Programm /usr/sbin/ltspadmin starten, welches ein einfaches Menü bereithält. Es besteht aus:
- Install/Update LTSP Packages = Pakete installieren und aktualisieren
- Configure the installer options = Proxy Server, Downloadpfad und wohin ltsp installiert werden soll
- Configure LTSP = Bereitet das Hostsystem auf LTSP vor
- Quit the administration program = Menü beenden
Wir wählen in diesem Fall zuerst das Installieren der LTSP Pakete aus und aktivieren bei jedem der zur Verfügung stehenden Komponenten ein Stern.:
(Es kann auch einfach der Buchstabe 'a gedrückt werden)
Component Size (kb) Status [*] ltsp_core 80916 Not installed [*] ltsp_debug_tools 4284 Not installed [*] ltsp_kernel 27708 Not installed [*] ltsp_libusb 896 Not installed [*] ltsp_localdev 4 Not installed [*] ltsp_pciutils 428 Not installed [*] ltsp_perl 28072 Not installed [*] ltsp_rdesktop 1872 Not installed [*] ltsp_scanners 29308 Not installed [*] ltsp_vnc_module 452 Not installed [*] ltsp_x_addtl_fonts 17368 Not installed [*] ltsp_x_core 97716 Not installed
Ist dies geschehen, wählen wir als nächsten den Buchstaben q (klingt komisch, ist aber so) und nach einer Bestätigung per y werden die Pakete heruntergeladen und nach /opt/ltsp (default) installiert.
Nach dem instalieren kommen wir wieder in das Hauptmenü, und wählen den Punkt Configure LTSP. Nach einem Check, bekommen wir in ein weiteres Untermenü:
ltspcfg v0.16 The Linux Terminal Server Project (http://www.LTSP.org) S - Show the status of all services C - Configure the services manually Q - Quit Make a selection:
Hier wählen wir den Punkt C und erhalten:
1 - Runlevel 2 - Interface selection 3 - DHCP configuration 4 - TFTP configuration 5 - Portmapper configuration 6 - NFS configuration 7 - XDMCP configuration 8 - Create /etc/hosts entries 9 - Create /etc/hosts.allow entries 10 - Create /etc/exports entries 11 - Create lts.conf file R - Return to previous menu Q - Quit
Es empfiehlt sich, die Punkte nacheinander abzuarbeiten:
- Punkt 1 ist Distributionsabhängig und sollte unter Ubuntu auf 5 gesetzt werden.
- Punkt 2 bezieht sich auf die Netzwerkkarte auf die LTSP (und damit die Dienste) hören soll. Ist nur eine aktiviert, kann dieser Punkt übersprungen werden
- Punkt 3 erzeugt eine DHCP Konfigurationssoftware unter /etc/dhcp3/dhcpd.conf.sample wenn die /etc/dhcp3/dhcpd.conf bereits existiert.
- Punkt 4 um den Kernel auf den Client zu übertragen, wird der tftpd Server benötigt. Um diesen müssen wir uns später per Hand kümmern.
- Punkt 5 für den Fall, das der Portmapper noch nicht laufen sollte, kann er hier aktiviert werden.
- Punkt 6 hier wird der NFS Server gestartet
- Punkt 7 wird der grafische Login-Manager angepasst, sodass er auch am Netzwerk lauscht. Unter Ubuntu der GDM.
- Punkt 8 damit Adressen in Namen aufgelöst werden können und umgekehrt, kann man entweder dies per DHCP/DNS machen lassen, oder Einträge für die /etc/hosts generieren.
- Punkt 9 trägt das Netzwerk in /etc/hosts.allow ein, damit die Clients die Erlaubnis haben, sich mit dem tftpd Server od. Portmap zu verbinden.
- Punkt 10 erstellt die /etc/export Enträge für den NFS Server. Diese Einträge werden wir später erweitern.
- Punkt 11 konfiguriert eine Standard /opt/ltsp/i386/etc/lts.conf LTSP Konfigurationsdatei, die für alle Clients gilt. Diese werden wir im verlaufe dieses HowTos, ebenfalls erweitern.
Ist alles durchgearbeitet worden (sofern nötig), können wir das Programm mit q beenden. Damit können wir zur Feinkonfiguration übergehen.
Konfiguration LTSP Host
DHCP Server
Eine DHCP Server Konfiguration, kann folgendermaßen aussehen:
ddns-update-style ad-hoc; option subnet-mask 255.255.255.0; option broadcast-address 192.168.100.255; option routers 192.168.100.252; option domain-name-servers 192.168.100.235; option domain-name "terminal.local"; # You really should fix this option option-128 code 128 = string; option option-129 code 129 = text; get-lease-hostnames true; next-server 192.168.100.235; option root-path "192.168.100.235:/opt/ltsp/i386"; subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.100 192.168.100.199; if substring (option vendor-class-identifier, 0, 9) = "PXEClient" { filename "/lts/2.6.16.1-ltsp-2/pxelinux.0"; } else{ filename "/lts/vmlinuz-2.6.16.1-ltsp-2"; } } # # If you need to pass parameters on the kernel command line, you can # do it with option-129. In order for Etherboot to look at option-129, # you MUST have option-128 set to a specific value. The value is a # special Etherboot signature of 'e4:45:74:68:00:00'. # # Add these two lines to the host entry that needs kernel parameters # # option option-128 e4:45:74:68:00:00; # NOT a mac address # option option-129 "NIC=ne IO=0x300"; #
Vorsicht: Das Script hat in meinem Fall das Subnet falsch eingetragen: Statt 192.168.100.0 stand 192.168.0.0 drin. Dadurch kann der DHCP Server nicht gestartet werden.
Diese Datei wurde mit Hilfe des ltspcfg erzeugt und enthält bereits alle wichtigen Punkte, um den DHCP Server zu starten. Die Adresse meines LTSP Servers beträgt 192.168.100.235 und der Router für das Internet hat die IP 192.168.100.254. Dieser Wert sollte entsprechend angepasst werden, sofern der LTSP Server nicht auch die Firewall und Router ist.
Für den Fall dass sich jemand wundern sollte: Der Pfad des Kernels lautet wirklich /lts/vmlinuz* da dies ausgehend vom Root des Pfades vom TFTPServer geht. Denn dort wird /tftpboot exportiert.
TFTD Server
Unter Ubuntu wird per default der tftpd-hpa verwendet, und kann per x/ineted od. als Daemon gestartet werden. Wird er als Daemon verwendet, muss die Datei /etc/default/tftpd-hpa angepasst werden:
#Defaults for tftpd-hpa RUN_DAEMON="yes" OPTIONS="-l -s /tftpboot"
Wir bevorzugen jedoch lieber den Weg per xinetd. Dazu installieren wir Paket xinetd nach:
# apt-get install xinetd
Und erzeugen eine neue Datei im /etc//etc/xinetd.d/ und nennen sie tftp:
# nano /etc/xinetd.d/tftp
und fügen folgendes ein:
service tftp { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot }
Danach kann der Daemon neugestartet werden:
/etc/init.d/xinetd restart Stopping internet superserver: xinetd. Starting internet superserver: xinetd.
Dies kann auch per ltspcfg getan werden. Im Menü c auswählen, dann Punkt 4.
NFS Server
Eine typische NFS /etc/export Datei sieht so aus:
/opt/ltsp 192.168.100.0/255.255.255.0(ro,no_root_squash,sync) /var/opt/ltsp/swapfiles 192.168.100.0/255.255.255.0(rw,no_root_squash,async) ## LTSP-end ##
Nun kann der NFS-Server gestartet werden:
# /etc/init.d/portmap start # /etc/init.d/nfs-common start # /etc/init.d/nfs-kernel-server start
GDM Display Manager
Damit der Gnome Display Manager sich auch über das Netzwerk meldet, müssen wir zwei Dinge in seiner Konfiguration anpassen:
# nano /etc/gdm/gdm.conf
Da passen wir zwei Dinge an:
# DisallowTCP=true
auf
# DisallowTCP=false
und
[xdmcp] Enable=false
auf
[xdmcp] Enable=true
Dann den GDM neustarten:
# /etc/init.d/gdm restart
Erster Start
Es sollte nocheinmal überprüft werden, ob alle benötigten Dienste aktiv sind. Dazu zählen:
* xinetd / tftpd * portmap * nfs-common und nfs-kernel-server * dhcpd * gdm
Mit dem Programm ltspcfg und dem Buchstaben s kann dies einem einen Überblick verschaffen:
ltspcfg v0.16 The Linux Terminal Server Project (http://www.LTSP.org) Interface IP Address Netmask Network Broadcast Used eth0 192.168.100.235 255.255.255.0 192.168.100.0 192.168.100.255 <----- Service Installed Enabled Running Notes dhcpd Yes Yes Yes Version 3 tftpd Yes Yes Yes Has '-s' flag portmapper Yes Yes Yes nfs Yes Yes Yes xdmcp Yes Yes Yes gdm Using: gdm File Configured Notes /etc/hosts Yes /etc/hosts.allow Yes /etc/exports Yes /opt/ltsp/i386/etc/lts.conf Yes Configured runlevel: 5 (value of initdefault in /etc/inittab) Current runlevel: 2 (output of the 'runlevel' command) Installation dir...: /opt/ltsp
PXE
Wer nun über PXE fähige Netzwerkkarten verfügt, kann nun den ersten Client starten und schauen, ob er am Ende einen Login Bildschirm erhält und sich auch anmelden kann. Dabei sollte man es unterlassen, sich mit dem Benutzer root einzuloggen, denn dies erlaubt der GDM per default nicht.
Per Floppy
Wer keine PXE fähige Karte hat und auch keine Flash-Roms um etwaige Karten zu tunen (man denke an die Sockel auf verschiedenen Karten von 3Com und Realtek), der kann dies auch per Diskette tun (möglicherweise sogar per USB stick).
Damit dies gelingt, bedienen wir uns des Etherboot Projektes. Etherboots eigentliche Aufgabe besteht darin, Images für Netzwerkkarten bereitzustellen. Diese Images können dann mit einem Flasher in die Eproms gebrannt werden. Wer nicht über das Equipment verfügt, schreibt diese Images in den Bootsektor der Diskette.
Diese Images zu erstellen ist eigentlich recht aufwendig, aber dank des Projektes Rom-o-matic.net wurde dies stark vereinfacht. Dazu besucht wir die folgende Webseite:
http://www.rom-o-matic.net/5.4.2/
und wählen für die entsprechende Netzwerkkarte ein Images aus und das gewünschte Medium. In unserem Fall Floppy. Es wären natürlich auch ISO, Grub/Lilo etc- möglich. Um das richtige Image für die jeweilige Netzwerkkarte herauszufinden, können wir uns des Tools lspci bedienen, zusammen mit dem Parameter -n. Uns interessiert immer nur die Class 0200, da diese für die Netzwerkkarten steht:
lspci -n | grep 0200 0000:00:0d.0 0200: 10b7:9050
Die 10b7 bezeichnet den Hersteller und die 9050 den Typ. In diesem Fall ist es eine 3com 905b und das Image lautet dazu: eb-5.4.2-3c90x.zdsk
Dieses Image wird dann auf die Diskette geschrieben:
# cat eb-5.4.2-3c90x.zdsk > /dev/fd0
Hat dies funktioniert, kann die Diskette eingelegt und von dieser gestartet werden. Es passiert dann genau das selbe, was auch über PXE passiert. Das Image wird geladen und eine DHCP Anfrage abgesetzt. Der DHCP antwortet und der Spaß beginnt :-)
/opt/ltsp/i386/etc/lts.conf
Eine Standard Konfiguration vom ltsp für die Clients kann so aussehen:
[Default] SERVER = 192.168.100.235 XSERVER = auto X_MOUSE_PROTOCOL = "IMPS/2" X_MOUSE_DEVICE = "/dev/psaux" X_MOUSE_RESOLUTION = 400 X_MOUSE_BUTTONS = 5 X_ZAxisMapping = "4 5" XKBVARIANT = NODEADKEYS XKBSYMBOLS = de(pc105) XKBMODEL = pc105 XKBLAYOUT = de USE_XFS = N MODULE_01 = uhci-hcd MODULE_02 = usblp MODULE_03 = usb-storage PRINTER_0_DEVICE = /dev/usb/lp0 PRINTER_0_TYPE = P SCREEN_01 = startx
Diese Konfiguration kann sowohl global sein, über [Default] als auch pro Client konfiguriert werden:
[ws001] XSERVER = auto X_MOUSE_PROTOCOL = "Microsoft" X_MOUSE_DEVICE = "/dev/ttyS1" X_MOUSE_RESOLUTION = 50 X_MOUSE_BUTTONS = 3 X_MOUSE_BAUD = 1200
Es gibt für die lts.conf sehr viele Parameter, die hier und hier nachgeschlagen werden können. Zu beachten ist, dass nur maximal 10 Module geladen werden können.
Für alle EVO T20 Besitzer gilt:
XSERVER = nsc
Externe Geräte
Datenträger
Damit wir auch unsere Daten auf dem liebgewonnen USB-Stick ablegen können, nutzen wir dazu fuse. Dieses Tool ermöglicht es, den USB Stick zu mounten und dem Benutzer zur Verfüngung zu stellen. Dazu müssen wir fuse ersteinmal installieren:
# apt-get install fuse-utils libfuse2 libx11-protocol-perl
Unter Ubuntu ist fuse bereits als Modul vorhanden, sodass wir es laden können:
# modrpobe fuse
dann noch in die /etc/modules einfügen
# echo "fuse" >> /etc/modules
Damit die Benutzer das Modul auch nutzen dürfen, fügen wir den Benutzer zu der fuse Gruppe hinzu:
# adduser user0001 fuse
Dann benötigen wir noch ein Programm was den Bus überwacht:
# cd /usr/src/ltsp # wget http://ltsp.mirrors.tds.net/pub/ltsp/utils/ltsp-server-pkg-static-0.1.tgz # tar xvzf ltsp-server-pkg-static-0.1.tgz # cd ltsp-server-pkg-static-0.1 # cp lbus_event_handler.sh /usr/sbin # cp lbussd /usr/sbin # cp ltspfs /usr/sbin # cp ltspswapd /usr/bin
Näheres ist der README zu entnehmen.
Die Datei xsession-lbus-start muss mit der Xsession des Users gestartet werden. Eine Möglichkeit wäre in die Datei .xession des Benutzers, oder in die Autostartverzeichnisse des jeweiligen Windows Managers. Ich in diesem Fall das Ubuntu Paket vorgezogen, da es auch die Scripte an die passenden Orte kopiert.
Ist alles an Ort und Stelle, können wir den Swap-Daemon starten:
# /etc/init.d/ltspswapd start
Dann füge wir folgendes, der lts.conf hinzu:
LOCAL_STORAGE = Y
Ist all dies geschehen und wurde der Client neugestartet, sind sofort das Floppy Laufwerk und eingesteckte USB-Sticks verfügbar. Ein Entmounten des Laufwerks entfällt, da nach zwei Sekunden das Laufwerk ohne Zugriff, automatisch syncronisiert und dann entmountet wird.
Einige Tipps gibt es hier im Wiki von ltsp.org zu finden.
Sound
Weil ein Arbeiten ohne anständige Musik nicht funktionieren kann, wird der LTSP Server mit Hilfe von ESD die Musik an den Client weiterreichen können. Da müssen wir uns ein Script laden, welches die Umgebung entsprechend anpasst:
# cd /usr/src/ltsp # wget http://www.ltsp.org/ltsp-4.1-extras/ltsp-sound-1.0-0.2.tar.bz2 # tar xvjf ltsp-sound-1.0-0.2.tar.bz2 # cd ltsp-sound-1.0 # ./install.sh
Da das Script mit der Version LTSP 4.2 Update 4 nicht funktioniert, müssen wir die Datei /opt/ltsp/i386/etc/rc.sound ein wenig anpassen. Der esd Teil muss am Ende so aussehen:
esd) for i in 1 2 3 4 5 ; do if [ ! "`ps uaxw | grep [e]sd`" ]; then # # We must put at least 1 option in the environment, # so that we can override the built-in defaults which # unfortunately include '-terminate', which we don't want # export ESD_SPAWN_OPTIONS="-public" /bin/esd -nobeeps -tcp -port 16001 -public -as 1 & #if [ -x /bin/esdplay ]; then # /bin/esdplay /etc/silent.wav & #fi sleep 1s fi done sleep 1
Es wurde noch ein -public hinzugefügt, sowie die Zeilen für esdplay auskommentiert.
Damit die Clients nun von den erweiterten Fähigkeiten auch was haben, passen wie die lts.conf an:
SOUND = Y SOUND_DAEMON = esd VOLUME = 75
Sofern die Soundkarte des Clients automatisch erkannt wird, steht nach dem Login der Sound zur Verfügung. Die Programme, wie xmms, müssen dann nur noch auf esd gestellt werden. Einzig Programme wie das Flash Plugin benötigen eine gesonderte Behandlung. Dazu lässt sich hier mehr finden.
FreeNX Integration
Das Problem bei einem normalen Terminal Server auf X Basis, besteht darin, dass der Verkehr zum einen ungesichtert über das Netzwerkkabel läuft, und zum anderen im Verhältnis sehr viel Bandbreite beansprucht. Wird eine große Anzahl an Clients benötigt, kann es unter Umständen zu engässen kommen und ein einfacher Switch kommt mit dem Ausliefern der Daten nicht mehr zurecht.
Eine weitere Überlegung ist es Wert, dem Mitarbeiter zuhause od. von Unterwegs den Zugriff auf dessen Umgebung zu ermöglichen. Da der Zugriff meist nur über schmalbandige Leitungen erfolgt, wäre das normale X Protokoll nahezu unbrauchbar.
In diese Lücke springt NX ein. NX ist ein Protokoll von der Firma NoMachine und komprimiert zum einen die Daten vom X und zum anderen werden nur die Daten erneuert, die sich verändert haben. Die Verbindung selber wird über einen SSH Tunnel geführt und ist verschlüsselt.
Große Teile von NX stehen unter der GPL zur Vergügung, auch der NX Server, welcher unter freeNX geführt wird. Die entsprechenden Clients gibt es kostenlos unter nahezu jedem Betriebsystem, von Linux bis Mac OSX.
Um freeNX mit LTSP zu verheiraten, bedarf es erst der Installation des freeNX Servers. Es empfiehlt sich, entsprechende Distributions- Pakete zu verwenden. In diesem Fall für Ubuntu Dapper.
freeNX Dapper Installation
Als erstes werden wir die /etc/apt/sources.list anpassen und ein neues Archiv einpflegen:
deb http://free.linux.hp.com/~brett/seveas/freenx dapper-seveas freenx deb-src http://free.linux.hp.com/~brett/seveas/freenx dapper-seveas freenx
Für die Installation muss noch ein gpg Schlüssel eingebunden werden, da die Pakete gegen gpg verfifiziert werden:
wget http://free.linux.hp.com/~brett/seveas/freenx/1135D466.gpg -O- | sudo apt-key add -
Ist dies geschehen, können wir mit apt-get update unsere Paketdatenbank erneuern.
Nun können wir den freeNX Server installieren:
# apt-get install freenx
Nach dem herunterladen, werden wir gefragt, welche Schlüssel wir verwenden wollen:
* NoMachine Keys * Custom keys * Remove freenx keys * Manual setup
Es wird von den freeNX Leuten empfohlen, die NoMachine Schlüssel zu verwenden. Also wählen wir diese Option. Diese Schlüssel landen dann in /var/lib/nxserver/home/.ssh.
Nun können wir die lts.conf anpassen und entweder zum default od. speziell zu einem Client ein:
SCREEN_02 = startnx
in die Konfiguration einfügen. Beim start wird dann auf der Konsole zwei (STRG + ALT +F2) der NX Client erscheinen.
LTSP NX Client
Da sich jemand die Mühe gemacht hat, für LTSP 4.x entrechende Scripte zu erstellen, werden wir dieses Paket auch nutzen. Dazu besorgen wir uns hier das neuste Paket. Derzeit ist es die Version NX1.5.0-141_LTSP_0.8.tgz :
# cd /usr/src/ltsp # wget http://belnet.dl.sourceforge.net/sourceforge/symbiont/NX1.5.0-141_LTSP_0.8.tgz # tar xvzf NX1.5.0-141_LTSP_0.8.tgz
Den Inhalt kopieren wird dann unterhalb des LTSP Root:
# cp -av NX1.5.0-141_LTSP/i386/* /opt/ltsp/i386/
Nun kopieren wir noch den SSH Schlüssel an Ort und Stelle:
# cp /var/lib/nxserver/home/.ssh/client.id_dsa.key /opt/ltsp/i386/usr/NX/share/client.id_dsa.key.session # chmod 0644 /opt/ltsp/i386/usr/NX/share/client.id_dsa.key.session
ein anschließendes:
# nxserver --restart
sorgt dafür, dass alles läuft. Wer ein Script unter /etc/init.d/ erwartet hat, dem sei gesagt: nxserver selbst ist kein Dienst. Alles läuft über SSH, daher wird auch kein spezielles Startscript benötigt.
Quellen
- LTSP
- LTSP-Wiki
- LTSP Mail Archiv
- LTSP-Guide
- LTSP-DE-Doku
- Gentoo und LTSP
- freeNX auf LinuxWiki.org
- freeNX unter Ubuntu
Links
ToDo
- Audio CD nutzen
-
freeNX einbinden - lokale Applikationen siehe hier
--Denny 17:29, 28. Sep 2006 (CEST)