Installation von LTSP 19.08

Da die neue LTSP Version 19.08, die in den Sommerferien im Rahmen des Google Summer of Code vollständig von Grund auf neu geschrieben wurde, viele Neuerungen bietet, habe ich mich entschlossen, sie in einer virtuellen Maschine auszuprobieren. Besonders reizvoll ist die Neuerung, dass man in 19.08 verschiedene Images auf dem Server zum Booten für die Clients zur Auswahl stellen kann. Es ist sogar möglich, von virtuellen Festplattenabbildern (vmdk) zu booten. Das ermöglicht es, dass man ein Schulsystem in VirtualBox pflegt und dieses dann den Clients über den LTSP zur Verfügung stellt.

Im Folgenden beschreibe ich die zur Installation erforderlichen Schritte. Diese Beschreibung basiert auf einer normalen Desktop-Installation von Ubuntu Mate 18.04 LTS.

Als ersten Schritt muss man die Netzwerkkarten so konfigurieren, dass eine Netzwerkkarte per DHCP bedient wird und dass die andere Netzwerkkarte eine feste IP zugewiesen bekommt. Über diese zweite Netzwerkkarte wird der Server dann die Clients bedienen.

sudo nano /etc/network/interfaces

Die Konfigurationsdatei /etc/network/interfaces sollte wie folgt aussehen. Dabei können die Netzwerkkarten anders heißen als in meinem Beispiel.

auto lo
iface lo inet loopback

auto enp0s3
iface enp0s3 inet dhcp

auto enp0s8
iface enp0s8 inet static
    address 192.168.67.1
    netmask 255.255.255.0
    broadcast 192.168.67.255

Nach diesen Änderungen sollte der Systemdienst, der für die Netzwerkkommunikation verantwortlich ist, neugestartet werden, damit die Änderungen sofort wirksam werden.

sudo systemctl restart networking.service

Im nächsten Schritt müssen einige Pakete entfernt werden, die Probleme verursachen.

sudo apt purge --yes --auto-remove indicator-application mate-hud snapd

Synaptic muss installiert werden.

sudo apt install --yes synaptic

Im nächsten Schritt muss das PPA der LTSP-Entwickler hinzugefügt werden, damit man die aktuellen Pakete erhält. In den Ubuntu-Paketquellen sind derzeit noch die alten Pakete enthalten.

sudo add-apt-repository ppa:ltsp
sudo apt update

Jetzt können die für den Betrieb des LTSP erforderlichen Pakete installiert werden.

sudo apt install ltsp dnsmasq nfs-kernel-server openssh-server squashfs-tools ethtool net-tools epoptes

Der nächste Befehl ermöglicht es dem Systemadministrator, das Monitoring-Tool epotes auszuführen. „administrator“ muss dabei durch den Benutzernamen des LTSP-Admins ersetzt werden.

sudo gpasswd -a administrator epoptes

Der nächste Befehl konfiguriert den LTSP so, dass er auf der internen Netzwerkkarte als DHCP-Server arbeitet und die Clients mit den Images versorgt. Das ist an dieser Stelle eine gewaltige Vereinfachung, weil kein umständliches Bearbeiten von Konfigurationsdateien mehr erforderlich ist.

sudo ltsp dnsmasq --proxy-dhcp=0

Der nächste Befehl erzeugt aus dem Server-Wurzel-Verzeichnis ein bootbares Images für die Clients. Das System, was an die Clients ausgeliefert wird, entspricht also in dieser Konfiguration dem System des Servers. An dieser Stelle wäre es jetzt aber auch möglich, aus einem virtuellen Festplattenabbild (vmdk) ein bootbares Image zu erzeugen. Wie das geht, werde ich ein anderes Mal beschreiben.

sudo ltsp image /

Im nächsten Schritt erzeugt man einen Eintrag für das PXE-Startmenü.

sudo ltsp ipxe

Der nächste Befehl konfiguriert den Server so, dass er das neu erzeugte Image per nfs an die Clients ausliefert.

sudo ltsp nfs

Schließlich wird die initial ramdisk zum Booten erzeugt:

sudo ltsp initrd

Folgendes Skript richtet das Routing vom internen Netz ins externe Netz ein:

#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -P FORWARD ACCEPT
iptables --table nat --append POSTROUTING --jump MASQUERADE --source 192.168.67.0/24

Soll der LTSP 19.08 in die IServ-Domäne aufgenommen werden, geht dieses auch. Leider funktioniert dieses nicht mehr so, wie in der Version LTSP5. Mir ist es dennoch gelungen, den LTSP Server in die IServ-Domäne aufzunehmen und für die Nutzerauthentifizierung zu nutzen. Wie das genau geht, darüber werde ich in meinem Blog noch berichten.