Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Dieser Artikel dient als Ergänzung zum Hauptartikel LTSP. Dieses ist nicht nur für Installationen mit vielen Rechnern (z.B. Klassenräume) geeignet, sondern kann auch im Privatbereich seine Stärken ausspielen: Es reicht, einen zentralen Server entsprechend leistungsstark auszustatten, während Nutzer mit abgespeckten Systemen auskommen. So wird eine bessere Auslastung der "starken" Maschine erreicht und bei den (Thin) Clients Strom gespart.
Die Grundkonfiguration von LTSP ist darauf ausgelegt, dass der Server im eingesetzten Netzwerk die Rolle des DHCP-Servers übernimmt. In einem typischen Heimnetzwerk wird diese Funktion meist aber von einem DSL-Router übernommen, der mit Konzepten wie Netzwerkboot über PXE in der Regel nichts anfangen kann.
Das "Preboot Execution Environment" (PXE) ist allerdings ein sehr mächtiges Protokoll und sieht ausdrücklich auch die Möglichkeit vor, mit Proxy-DHCP in einer bestehenden Netzwerkumgebung eingesetzt zu werden. Diese Funktion übernimmt Dnsmasq, dessen Konfiguration auf dem LTSP-Server im Folgenden beschrieben wird.
LTSP und Dnsmasq können direkt aus den Quellen installiert werden [1].
ltsp-server
dnsmasq (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install ltsp-server dnsmasq
sudo aptitude install ltsp-server dnsmasq
Ein Hinweis für Host-Systeme ohne grafische Umgebung (z.B. Ubuntu-Server): Ein Minimum an Grafikunterstützung ist erforderlich, sonst funktioniert die Anmeldung am Thin Client nicht.
xinit
mit apturl
Paketliste zum Kopieren:
sudo apt-get install xinit
sudo aptitude install xinit
Im installierten LTSP-Paket sind Werkzeuge enthalten, um eine LTSP-Umgebung für die Clients zu erstellen. Dies geschieht mit folgendem Befehl [2][3]:
sudo ltsp-build-client
Die Client-Umgebung hat dieselbe Architektur wie der Server. Wenn der Server mit einem 64 Bit-System läuft, die Clients aber nur mit 32 Bit umgehen können, lautet der Befehl:
sudo ltsp-build-client --arch i386
Damit Dnsmasq als DHCP-Proxyserver läuft, werden mit Root-Rechten entsprechende Anpassungen in der Datei /etc/dnsmasq.conf durchgeführt. In der Standardkonfiguration sind alle Optionen auskommentiert, die Konfiguration für LTSP kann man einfach am Ende einfügen.
# Deaktivieren der DNS-Funktionalität port=0 # Den eingebauten TFTP-Server nutzen enable-tftp # Verzeichnis für die Dateien der Clients tftp-root=/var/lib/tftpboot # Kein Multicast erlaubt dhcp-option=vendor:PXEClient,6,2b # Kompatibilität zu älteren oder fehlerhaften DHCP-Clients dhcp-no-override # Dnsmasq wird zu einem Proxy-DHCP. Die IP-Adresse ist diejenige des Servers dhcp-range=192.168.1.5,proxy # Ein PXE-Menü wird benötigt, sonst funktioniert Proxy-DHCP mit dnsmasq nicht. Die Zahl gibt die Sekunden an, nach denen der erste Eintrag gestartet wird pxe-prompt="F8 druecken fuer Bootoptionen", 3 # Eintrag für Netzwerkboot pxe-service=X86PC, "Netzwerkboot", /ltsp/i386/pxelinux #pxe-service=X86PC, "Netzwerkboot", /ltsp/amd64/pxelinux # Netzwerkboot abbrechen pxe-service=X86PC, "Lokale Festplatte", 0 # Dnsmasq wird gesprächig und schreibt nach /var/log/syslog log-dhcp
Weitere Einstellungsmöglichkeiten gibt es im Artikel PXE-Boot.
Eine Datei beliebigen Namens, bspw. ltsp.conf, unterhalb von /etc/dnsmasq.d/ mit folgendem Inhalt erstellen:
# Deaktivieren der DNS-Funktionalität; wird diese unter ab 14.04 deaktiviert haben weder der Client noch der Server DNS-Auflösung #port=0 # Den eingebauten TFTP-Server nutzen enable-tftp # Verzeichnis für die Dateien der Clients tftp-root=/var/lib/tftpboot # Kein Multicast erlaubt dhcp-option=vendor:PXEClient,6,2b # Kompatibilität zu älteren oder fehlerhaften DHCP-Clients dhcp-no-override # Dnsmasq wird zu einem Proxy-DHCP. Eine beliebige IP-Adresse aus dem Router-Subnetz; bspw. die des LTSP-Servers dhcp-range=192.168.178.80,proxy # Ein PXE-Menü wird benötigt, sonst funktioniert Proxy-DHCP mit dnsmasq nicht. Die Zahl gibt die Sekunden an, nach denen der erste Eintrag gestartet wird pxe-prompt="F8 druecken fuer Bootoptionen", 3 # Eintrag für Netzwerkboot pxe-service=X86PC, "Netzwerkboot i386", /ltsp/i386/pxelinux pxe-service=X86PC, "Netzwerkboot amd64", /ltsp/amd64/pxelinux # Netzwerkboot abbrechen pxe-service=X86PC, "Lokale Festplatte", 0 # Dnsmasq wird gesprächig und schreibt nach /var/log/syslog log-dhcp
Man beachte: hier sind beide Architekturen einkommentiert; der erste wird standardmäßig gebootet. Weitere Einstellungsmöglichkeiten gibt es im Artikel PXE-Boot. Um die neue Konfiguration wirksam werden zu lassen, führt man folgenden Befehl aus:
service dnsmasq restart
Damit der Client weiß, dass er LTSP nicht unter der Adresse des primären DHCP-Servers findet, ist eine Bootoption nötig. Dazu wird als Root die Datei /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default bzw. /var/lib/tftpboot/ltsp/amd64/pxelinux.cfg/default um folgende Zeile ergänzt:
ipappend 3
/var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default bzw. /var/lib/tftpboot/ltsp/amd64/pxelinux.cfg/default
default ltsp-NBD ontimeout ltsp-NBD label ltsp-NBD menu label LTSP, using NBD kernel vmlinuz-3.13.0-43-generic append ro initrd=initrd.img-3.13.0-43-generic init=/sbin/init-ltsp quiet splash root=/dev/nbd0 ipappend 3 [...] menu begin ltsp-versions-NBD menu label Other LTSP boot options using NBD label ltsp-NBD-3.13.0-43-generic menu label LTSP, using NBD, with Linux 3.13.0-43-generic kernel vmlinuz-3.13.0-43-generic append ro initrd=initrd.img-3.13.0-43-generic init=/sbin/init-ltsp quiet splash root=/dev/nbd0 ipappend 3 menu end [...]
Die restlichen Abschnitte sind nicht relevant, da nur NBD verwendet wird. Auch hier muss ipappend 2 durch ipappend 3 ersetzt werden. Der Rest variiert je nach eingesetztem Kernel. Anschließend sollte man den Server neu starten, weil insbesondere der NBD-Server zickig ist. Dann steht einem ersten Test mit PXE-fähigen Clients nichts im Weg.
service nbd-server restart
Im späteren Betrieb sollte ein Neustart des NBD-Servers nur erfolgen, wenn vorher alle Clients heruntergefahren wurden!
Die Konfiguration der Clients geschieht über die lts.conf, die unter /var/lib/tftpboot/ltsp/i386/ bzw. /var/lib/tftpboot/ltsp/amd64/ zu finden ist. Dazu gibt es einen eigenen Artikel: LTSP/lts.conf.
Die Anmeldung auf den Clients ist mit allen Benutzern möglich, die auf dem Server existieren. Neue Benutzer lassen sich einfach mit der Konsole anlegen, siehe Benutzerverwaltung. Zum testen kann man auch den ersten Benutzer verwenden, der bei der Installation des Grundsystems angelegt wurde.
Mittels Virtualisierung und dem RDP-Protokoll kann man Clients auch direkt ein Windows servieren. Die Konfiguration ist in einem eigenständigen Artikel beschrieben: LTSP/Windows mit VirtualBox.
Wenn man das Image z.B. nach einem Kernelupdate mit sudo ltsp-update-image
erneuert, booten die Clients nicht mehr. Dies liegt daran, dass die Datei /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default bzw. /var/lib/tftpboot/ltsp/amd64/pxelinux.cfg/default neu angelegt wird und der Eintrag "ipappend 3" dann fehlt. Dann wiederholt man den Schritt, der oben unter Netzwerkkonfiguration übergeben erläutert ist.
Neustart von dnsmasq; stellt den TFTP-Server bereit:
service dnsmasq restart
ProxyDHCP im Ubuntu-Wiki
HOWTO: Boot Linux from network using PXE and DNSMASQ proxy - Blogbeitrag, 02/2012
LTSP Übersichtsartikel
Diese Revision wurde am 3. April 2015 17:21 von aasche erstellt.