[[Vorlage(Archiviert)]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] [:PXE-Boot#PXE-Client-einrichten:PXE-Client-einrichten] }}} [[Inhaltsverzeichnis()]] [[Bild(LTSP/ltsp_logo.png, 128, align=left)]] Dieser Artikel dient als Ergänzung zum Hauptartikel [:Archiv/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 [wikipedia:Preboot_Execution_Environment: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 [wikipedia:Preboot_Execution_Environment#Proxy_DHCP:Proxy-DHCP] in einer bestehenden Netzwerkumgebung eingesetzt zu werden. Diese Funktion übernimmt [:Dnsmasq:], dessen Konfiguration auf dem LTSP-Server im Folgenden beschrieben wird. = Installation = LTSP und Dnsmasq können direkt aus den Quellen installiert werden [1]. {{{#!vorlage Paketinstallation ltsp-server dnsmasq, universe }}} {{{#!vorlage Hinweis 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. {{{#!vorlage Paketinstallation xinit \}}} }}} = LTSP-Umgebung = Im installierten LTSP-Paket sind Werkzeuge enthalten, um eine LTSP-Umgebung für die Clients zu erstellen. Dies geschieht mit folgendem Befehl [2][3]: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl sudo ltsp-build-client --arch i386 }}} = Proxy-DHCP mit dnsmasq = 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#Die-Konfigurationsdateien:]. == Konfiguration ab Ubuntu 14.04 == 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#Die-Konfigurationsdateien:]. Um die neue Konfiguration wirksam werden zu lassen, führt man folgenden Befehl aus: {{{#!vorlage Befehl service dnsmasq restart }}} = Netzwerkkonfiguration übergeben = 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 }}} == Konfigurationsdatei ab 14.04 == '''/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. {{{#!vorlage Befehl service nbd-server restart }}} {{{#!vorlage Warnung Im späteren Betrieb sollte ein Neustart des NBD-Servers nur erfolgen, wenn vorher alle Clients heruntergefahren wurden! }}} = Konfiguration der Clients = 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: [:Archiv/LTSP/lts.conf:]. = Benutzer anlegen = 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 [:Benutzer_und_Gruppen#Terminal:Benutzerverwaltung]. Zum testen kann man auch den ersten Benutzer verwenden, der bei der Installation des Grundsystems angelegt wurde. = Windows für Clients = Mittels Virtualisierung und dem RDP-Protokoll kann man Clients auch direkt ein Windows servieren. Die Konfiguration ist in einem eigenständigen Artikel beschrieben: [:Archiv/LTSP/Windows_mit_VirtualBox:]. = Problembehebung = == Clients booten nicht mehr nach ltsp-update-image == 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-uebergeben Netzwerkkonfiguration übergeben] erläutert ist. == TFTP Timeout nach einem ltsp-update-image == Neustart von dnsmasq; stellt den TFTP-Server bereit: {{{#!vorlage Befehl service dnsmasq restart }}} = Links = * [ubuntu_doc:community/UbuntuLTSP:ProxyDHCP] {en} im Ubuntu-Wiki * [http://danielboca.blogspot.de/2012/02/boot-linux-from-network-using-pxe-and.html HOWTO: Boot Linux from network using PXE and DNSMASQ proxy] {en} - Blogbeitrag, 02/2012 * [:Archiv/LTSP:] {Übersicht} Übersichtsartikel #tag: Netzwerk, Server, LTSP