Revision 2 vom 2021-12-22 09:36:06

Nachricht löschen

Diskless Workstation Server (bullseye)

Installation

Das Debian Edu Minimalsystem disklserver.intern installieren wir über die PXE-Installationsumgebung von Debian Edu / Skolelinux. Die Vorbereitung der VM Instanz werden hier für libVirt bzw. Ganeti beschrieben.

Es startet der Debian (Edu) Installer:

Konfiguration

Nach dem Neustart der VM disklserver.intern sollte der Hostname des gestarteten Systems auf disklserver.intern gesetzt sein. Wird stattdessen als Hostname localhost angezeigt, hat die Eintragung des Systems in GOsa² nicht funktioniert. Bevor man weiter fortfahren kann, muss dieser Fehler behoben sein.

Fine-Tuning der VM-Einstellungen

Paket-Quellen für Debian squeeze-backports und ITZkS dem Diskless Workstations Server hinzufügen

$ editor /etc/apt/sources.list.d/backports.list

"""
deb http://ftp.de.debian.org/debian stretch-backports main contrib non-free
"""

$ editor /etc/apt/sources.list.d/itzks.list

"""
deb http://packages.it-zukunft-schule.de/debian stretch main contrib non-free
deb http://packages.it-zukunft-schule.de/debian stretch-backports main contrib non-free
"""

$ apt-get update && apt-get install itzks-systems-common itzks-keyring && apt-get update

Software nachinstallieren

System konfigurieren

  1. Login als root

  2. Standard-Editor festlegen (an der Unix-Console)

    $ update-alternatives --config editor

    Hier vim.basic auswählen.

  3. Das Programm Midnight Commander starten (Kommando: mc):

    • F9 drücken
    • Optionen -> Konfiguration: [x] Internen Editor benutzen

    • Optionen -> Einstellungen speichern

    • F10: Midnight Commander beenden
  4. Den Midnight Commander Editor (Kommando: mcedit) starten:

    • F9 drücken
    • Menüpunkt: Optionen -> Allgemein

    • "Backspace durch Tabs" auswählen
    • "Tabs mit Leerzeichen auffüllen" auswählen
    • "Return rückt automatisch ein" abwählen
    • mit "OK" bestätigen
    • F10: Editor beenden

Boot-Verzögerung bei Stromausfall

Debian Edu System setzen beim Systemstart einen erreichbaren Hauptserver voraus. Für Debian Edu Server-VMs ergibt sich die Anforderung einer Boot-Verzögerung.

Anstelle aufwendiger VM-Host Skripte wird eine Startverzögerung durch ein hohes Timeout im Bootloader GRUB erwirkt.

<user>@disklserver:/# diff -u /etc/default/grub.orig /etc/default/grub
--- /etc/default/grub.orig      2012-08-31 16:06:51.000000000 +0200
+++ /etc/default/grub   2012-08-31 16:06:59.000000000 +0200
@@ -2,7 +2,7 @@
 # /boot/grub/grub.cfg.
 
 GRUB_DEFAULT=0
-GRUB_TIMEOUT=5
+GRUB_TIMEOUT=600
 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
 GRUB_CMDLINE_LINUX_DEFAULT="quiet"
 GRUB_CMDLINE_LINUX=""

Danach muss die Konfigurationsänderung übernommen werden:

$ sudo update-grub

Nur Admin-User und Junior-Admins dürfen sich auf DISKLSERVER einloggen

Schul-Admins und IT-Dienstleister tragen wir in der LDAP-Gruppe admins ein. Junior-Admins (Schüler der Computer-AG) tragen wir in der Gruppe jradmins ein.

/!\ Wichtig: Der Diskless Workstation Server darf ein Login nur für Dienstleister, Schul-Admins und Junior-Admins erlauben. Hierfür müssen die Dateien /etc/security/access.conf und /etc/pam.d/sshd angepasst werden:

--- /etc/security/access.conf.orig
+++ /etc/security/access.conf
@@ -120,3 +120,6 @@
 #
 # All other users should be denied to get access from all sources.
 #- : ALL : ALL
+
++ : admins jradmins root : ALL
+- : ALL : ALL

--- /etc/pam.d/sshd.orig        2012-07-30 17:51:12.000000000 +0200
+++ /etc/pam.d/sshd     2012-07-30 17:51:26.000000000 +0200
@@ -15,7 +15,7 @@
 
 # Uncomment and edit /etc/security/access.conf if you need to set complex
 # access limits that are hard to express in sshd_config.
-# account  required     pam_access.so
+account  required     pam_access.so
 
 # Standard Un*x authorization.
 @include common-account

Einrichtung des Diskless Workstation Chroot

Speicherplatz für DLW Chroot bereit stellen

Zunächst muss der für das Diskless Workstation Chroot Image vorgesehene Festplattenplatz vorbereitet werden:

$ sudo lvcreate vg_system -n srv -L 40G
$ sudo mkfs.ext4 /dev/vg_system/srv

Jetzt noch einen Eintrag in {{{/etc/fstab

anlegen:

--- /etc/fstab.orig     2012-07-31 13:31:19.000000000 +0200
+++ /etc/fstab  2012-07-31 13:34:46.000000000 +0200
@@ -10,6 +10,7 @@
 /dev/mapper/vg_system-root   /             ext4    errors=remount-ro 0       1
 # /boot was on /dev/vda1 during installation
 UUID=<blkid-/boot>           /boot         ext4    defaults        0       2
+/dev/mapper/vg_system-srv    /srv          ext4    defaults        0       2 
 /dev/mapper/vg_system-usr    /usr          ext4    defaults        0       2
 /dev/mapper/vg_system-var    /var          ext4    defaults        0       2
 /dev/mapper/vg_system-swap_1 none          swap    sw              0       0

Chroot Erstellen

Das Diskless Workstation Chroot wird automatisch bei der Installation eines Debian Edu Terminal (LTSP) Servers erstellt. Dieses Chroot liegt auf einem frisch installierten LTSP Server im Ordner /opt/ltsp/amd64 (ggf. auch unter /opt/ltsp/i386).

Wir beschreiben im folgenden die Umgangsweise mit einem amd64-Chroot. Werden viele alte Thin Client Geräte genutzt, ist es ggf. erforderlich ein i386 Chroot vorzuhalten.

Möglichkeit 1: Chroot selbst anlegen

Nach der Debian Edu Terminalserver Installation wird das Diskless Chroot mittels ŧar verpackt und auf den Diskless Workstation Server nach /srv/ltsp/amd64 kopiert.

# Als Super-User root@ltspserver00:
# =================================
ltspserver00:~$ cd /opt
ltspserver00:/opt$ rsync -aHAX --numeric-ids ltsp root@disklserver:/srv

Möglichkeit 2: ITZkS-Chroot für DLWs beziehen

Empfohlen: Das IT-Zukunft Schule Projekt pflegt ein stets aktuells Diskless Workstation Chroot. Dieses kann auf den disklserver synchronisiert werden. Dieser Service steht allerdings nur Projekt-Kunden zur Verfügung.

Chroot-Verzeichnis via NFSv3 exportieren

Um das Diskless Workstation Chroot Verzeichnis (Achtung: bitte entsprechend amd64 oder i386 im Pfad verwenden) via NFSv3 zu exportieren, muss dieser Eintrag der Datei /etc/exports hinzugefügt werden:

$ sudo -i
$ echo "/srv/ltsp/amd64 @workstation-hosts(ro,async,no_root_squash,subtree_check) 127.0.0.1(ro,async,no_root_squash,subtree_check,insecure)" >> /etc/exports
$ exportfs -ar
$ exit

Chroot für Aktualisierung vorbereiten (nur wenn Chroot selbst gepflegt wird)

Über das Paket itzks-packages-disklserver wurde das Skript diskless-workstation-shell auf disklserver.intern installiert. Dieses Skript ruft eine Shell im Diskless Workstation Chroot auf, so dass Software-Aktualisierungen und anderen Aufgaben im Chroot durchgeführt werden können.

sudo diskless-workstation-shell

Im Chroot muss jetzt die APT-Quelle von IT-Zukunft Schule hinzugefügt werden. Von dort wird u.a. das Paket itzks-systems-config installiert, welches weitere APT Quellen dem System hinzufügt.

$ editor /etc/apt/sources.list.d/itzks.list

"""
deb http://packages.it-zukunft-schule.de/debian stretch main
deb http://packages.it-zukunft-schule.de/debian stretch-backports main
"""

$ apt-get update && apt-get install itzks-keyring itzks-systems-common && apt-get update

Kernel im Chroot aktualisieren

/!\ Die untenstehenden Arbeitsschritte werden im Diskless Workstation Chroot ausgeführt (Kommando: diskless-workstation-shell).

Vor der Software-Aktualisierung spielen wir einen aktuellen Kernel ein:

$ apt-get install linux-image-amd64

Software im Chroot aktualisieren

/!\ Die untenstehenden Arbeitsschritte werden im Diskless Workstation Chroot ausgeführt (Kommando: diskless-workstation-shell).

Die Software, die auf einer Diskless Workstation installiert werden soll, sind als Abhängigkeiten im Paket itzks-packages-diskless hinterlegt. Eine Installation dieses Pakets installiert die benötigte Software automatisch mit:

$ apt-get install itzks-systems-diskless

Sollen DVDs auf Diskless Workstations abspielbar sein, dann muss von Debian Multimedia das Paket libdvdcss2 nachinstalliert werden:

$ apt-get install libdvdcss2

Konfiguration im Chroot anpassen

/!\ Die untenstehenden Arbeitsschritte werden im Diskless Workstation Chroot ausgeführt (Kommando: diskless-workstation-shell).

Alle Arbeitsschritte als Super-User root im Chroot durchführen!!!

SSH Server nur an das loop-Device binden

Java 8 (Oracle) nachinstallieren

Optional kann auf den Diskless Workstations auch Java 8 (Oracle) installiert werden:

  $ apt-get install oracle-java8-jre oracle-java8-plugin
  $ update-java-alternatives --jre --set java-8-oracle
  $ update-java-alternatives --plugin --set java-8-oracle

Tastatur anpassen

Ist auf dieser Seite beschrieben: Technik/Nutzungshinweise/TastaturEinstellungen.

Shutdown-at-Night

Wichtig: auf allen Debian Edu Systemen sollte eine Shutdown-at-Night Version (>= 0.12) installiert sein.

Hinzu kommt, dass die Datei /etc/default/halt auf DLWs (und ggf. Workstation Hosts) angepasst werden muss:

root@dlw-chroot:/# cat /etc/default/halt
# Default behaviour of shutdown -h / halt. Set to "halt" or "poweroff".
HALT=poweroff
NETDOWN=no

# leave network cards in WOL state... (adapt NIC name if needed) 
ethtool -s eth0 wol g

PAM Groups konfigurieren

Diverse Features unter Linux bedürfen der Gruppenzugehörigkeit zu System-Gruppen (z.Bsp. fuse-basierte Dateisysteme). Dient LDAP als Benutzerverwaltung, dann müssen solche Gruppenzugehörigkeiten über PAM Groups dem Benutzer hinzugefügt werden.

Auf den Diskless Workstations fügen wir dafür folgende Zeile an die Daten /etc/security/groups.conf an:

root@dlw-chroot:/# diff -ur /etc/security/group.conf.orig /etc/security/group.conf
--- /etc/security/group.conf.orig       2014-03-03 13:05:17.000000000 +0100
+++ /etc/security/group.conf    2014-03-03 08:29:54.000000000 +0100
@@ -98,3 +98,5 @@
 # End of group.conf file
 #
 
+*;*;*;Al0000-2400;dialout,cdrom,floppy,audio,video,plugdev,netdev,powerdev,fuse
+

PXE-Bootumgebung für Diskless Workstations

Die PXE-Bootumgebung wird mithilfe der Tools syslinux und atftpd bereit gestellt.

PXE-Bootumgebung anlegen

Die PXE-Bootumgebung (eine Syslinux-Konfiguration) ist im Paket itzks-systems-disklserver enthalten. Installationshinweise befinden sich in der folgenden Datei:

$ zcat /usr/share/doc/itzks-systems/disklserver/examples/README.tftp.gz

Eine Online-Kopie des gen. READMEs ist ebenfalls verfügbar: https://code.it-zukunft-schule.de/cgit/itzks-systems/tree/examples/disklserver/README.tftp

Anpassen des Standard-Images für PXE-Boot

Auf disklserver.<SCHULE> unter /srv/tftp/diskless+x2go/debian-edu/ folgende Anpassungen vornehmen.

(In diesem Beispiel zum Umstellen des Standardboot-Images von jessie auf stretch.)

default-menu.cfg

-- ontimeout ltsp-diskless-jessie
++ ontimeout ltsp-diskless-stretch

ltsp-diskless-jessie.cfg

-- MENU DEFAULT
++ # MENU DEFAULT

ltsp-diskless-stretch.cfg

-- # MENU DEFAULT
++ MENU DEFAULT

LDAP: DHCP-Gruppen für PXE-Bootumgebung

Mit dem Befehl ldapvi werden nun einige DHCP-Clientgruppen zum LDAP-Baum auf dem Debian Edu Hauptserver hinzugefügt.