ubuntu dhcp/ltsp Server

Ich hatte ja den Ubuntu dhcp/ltsp Server durch einen Debian Server ersetzt, da der Ubuntu Server öfters abstürzte. Da unter Debian das Live-Backup von Hyper-V nicht unterstützt wird, starte ich einen neuen Versuch mit Ubuntu 14.04 Trusty. Ich hoffe, dass diese LTS Version stabiler läuft, als die erste. Das war die Version 14.10 (Utopic).

Ich installiere als einen neuen Hyper-V Gast mit 10GB Harddisk, 1GB Ram, einem Prozessor. Mit dem Powershell Befehl
Set-VMFirmware –VMName "VMname" -EnableSecureBoot Off
sorge ich dafür, dass ich eine Generation 2 Maschine anlegen kann. Ich installiere von einem Image der Ubuntu Server CD
ubuntu-server-14.04.3-server-amd64.
Mit
apt-get install ltsp-server-standalone
installiere ich den LTSP Server.
Ich möchte mit dem nfs Server arbeiten, also geht es mit
apt-get install kernel-nfs-server
weiter.
Ich möchte Debian Clients installieren dafür brauche ich noch die GPG Keys:
apt-get install debian-keyring debian-archive-keyring
Jetzt installiere ich einen bootfähigen Client mit
VENDOR=Debian ltsp-build-client --arch=i386 --dist=jessie
Ich kopiere noch /etc/dhcpd.conf von meinem Debian DHCP Server. Anschliessend führe ich noch alle Änderungen durch, die ich in Einrichtung von LTSP beschrieben habe.

Einrichtung von LTSP

In /etc/ltsp/ltsp-build-client.conf und /etc/ltsp/ltsp-update-image.conf trage ich die Zeile ARCH=i386 ein, damit immer die i386 Architektur gewählt wird. Wir haben als Thin Clients noch alte Rechner im Haus.
Mit ltsp-build-client --arch i386 baue ich das erste image für LTSP. Hier geht es erst mal nicht weiter: libalgorithm-c3-perl kann nicht installiert werden :(.
Ich versuche mit ltsp-chroot und apt-get install ltsp-client den LTSP Client zu installieren. Das scheint zu funktionieren. Remmina installiere ich auch sofort: apt-get install remmina. Rdesktop funktioniert nämlich nicht mehr mit Windows 2012-R2. Im neuen LTSP fehlt das Programm jetpipe, das ich brauche um die lokalen USB Drucker an den Thin Clients zu nutzen. Mit exit verlasse ich die LTSP Client Umgebung.
sudo wget http://launchpadlibrarian.net/14035814/jetpipe -O /opt/ltsp/i386/usr/sbin/jetpipe
sudo chmod +x /opt/ltsp/i386/usr/sbin/jetpipe

Damit ist auch jetpipe installiert.
In den Clients soll automatisch remmina starten:
cd /opt/ltsp/i386/usr/share/ltsp/screen.d
ln -s xfreerdp remmina

Damit kann ich remmina in lts.conf eintragen.
In /opt/ltsp/i386/etc lege ich eine Datei terminalserver.remmina an.
Ich kopiere ein remmina config file und ändere diese Zeilen:
server=MEIN_TERMINALSERVER
name=Terminalserver
shareprinter=1
protocol=RDP
sound=local
sharefolder=/media/root
domain=MEINE_WINDOWS_DOMAIN
colordepth=16
window_maximize=1

Mit ltsp-update-image erzeuge ich jetzt das Client Image. Wie auch schon bei Ubuntu wird auch hier kein bootfähiges Image in /var/lib/tftpboot erzeugt. Die Datei pxelinux.0 ist auf dem Client von /var/lib/syslinux nach /var/lib/PXELINUX umgezogen. Das löse ich mit einem symbolischen link in /var/lib/syslinux. Auf dem Client gibt es auch noch keinen Kernel. Mit ltsp-chroot apt-get install linux-image-486 und ltsp-update-image schaffe ich es endlich, in /srv/tftp die richtigen Files anzulegen.
In /srv/tftp/ltsp/i386/etc/lts.conf schreibe ich die Zeilen
default]
SOUND=True
LOCALDEV=True
SCREEN_07="remmina"
RDP_OPTIONS="-c /etc/terminalserver.remmina"
PRINTER_0_DEVICE=/dev/usb/lp0
PRINTER_0_TYPE=U
LDM_DIRECTX=True

Die Clients starten immer noch nicht.
In /opt/ltsp/i386/etc/ltsp/update-kernels.conf schreibe ich die Zeilen
PXELINUX_DEFAULT=ltsp-NBD und BOOT_METHODS="NBD AOE NFS". Dann erzeuge ich mit ltsp-chroot /usr/share/ltsp/update-kernels und ltsp-update-kernels die richtigen Einträge in /srv/tftp/ltsp/i386/pxelinux.cfg.

Jetpipe startet noch nicht automatisch. Ich ändere die Funktion start_printers() in /opt/ltsp/i386/etc/init.d/ltsp-client-core so:
start_printers() {
for I in 0 1 2; do
eval PRINTER_DEVICE=\$\{PRINTER_${I}_DEVICE\}
if [ -n "${PRINTER_DEVICE}" ]; then
eval PORT=\$\{PRINTER_${I}_PORT:="910${I}"\}
/usr/sbin/jetpipe ${PRINTER_DEVICE} ${PORT}

fi
done
}
.
Damit funktionieren jetzt die Drucker.
Jetzt fehlen nur noch die USB-Sticks. Die tauchen noch nicht auf. Ich installiere auf den Clients ltspfs mit ltsp-chroot apt-get install ltspfs. Das bringt mich noch nicht weiter :(

Ich verschiebe das erst einmal und kümmere mich darum, dass remmina nach Abmeldung oder Timeout neu gestartet wird. Das passiert mit diesem Script /usr/local/sbin/remmina_watchdog:
#!/bin/bash

while true
do
lsof | grep remmina | grep terminalserver || killall remmina
sleep 3
done

Das Script starte ich in /etc/init.d/ltsp-client-core mit der Funktion:
start_remmina_watchdog() {
/usr/local/sbin/remmina_watchdog >/dev/null 2>/dev/null &
}

, die ich dort in der start Sektion nach start_sound aufrufe.

LTSP läuft jetzt bis auf die USB Sticks. Einen ersten remmina Client auf Raspberry Basis habe ich auch schon auf den neuen Windows 2012 Terminalserver umgestellt. Die Raspberrys und BananaPi’s möchte ich demnächst auch via BerryTerminal von LTSP starten. Dann muss ich mich nicht mehr um die Pflege der SD Karten kümmern.

Fazit: LTSP in Debian jessie hat stark nachgelassen. Out-of-the-Box funktioniert da im Moment fast nichts:
ltsp-build-client bricht mit Fehler ab.
ltsp-update-image bringt keine Fehlermeldung, falls keine Kernel installiert ist.
ltsp-update-image erzeugt keine Boot Files für TFTP.
Drucker funktionieren nicht mehr.
USB Sticks funktionieren nicht mehr.
remmina ist nicht eingebaut. xfreerdp ist kein Ersatz für rdesktop, da es fest eingestellte Benutzernamen erfordert.

Die Ubuntu Variante war etwas freundlicher. Zumindestens laufen dort ltsp-build-client und die USB Sticks. Vielleicht installiere ich noch einen Ubuntu Client in /opt/ltsp. Ubuntu auf dem Server möchte ich nicht mehr haben, da er ja zweimal in 2 Wochen abgestürzt ist.