Unterschiede zwischen den Revisionen 3 und 9 (über 6 Versionen hinweg)
Revision 3 vom 2022-01-05 12:09:56
Größe: 9579
Kommentar:
Revision 9 vom 2022-01-05 12:19:54
Größe: 10203
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 45: Zeile 45:
deb http://packages.it-zukunft-schule.de/debian stretch main
deb http://packages.it-zukunft-schule.de/debian stretch-backports main
deb http://packages.it-zukunft-schule.de/debian bullseye main
deb http://packages.it-zukunft-schule.de/debian bullseye-backports main
Zeile 49: Zeile 49:
$ apt-get update && apt-get install itzks-keyring itzks-systems-common && apt-get update $ apt-get update --allow-insecure-repositories && apt-get install itzks-keyring && apt-get update && apt-get install itzks-systems-common
Zeile 60: Zeile 60:
Danach das Chroot verlasse (Kommando: {{{exit}}}) und für die Boot-Umgebung das aktuelle Kernel-Image (+ InitRamDisk) bereitstellen:{{{
# ltsp kernel /srv/ltsp/*
}}}
Zeile 79: Zeile 83:
 Die Installation des Pakets {{{x2goclient}}} installiert einen SSH-Server mit. Auf Diskless Workstation sollte dieser Dienst nur auf der {{{localhost}}} Adresse (IPv4-only!) erreichbar sein:{{{ Wenn man SSH-Zugriff auf Diskless Workstations unterbinden möchte, dann sollte man den SSH Dienst auf Diskless Workstations nur auf der {{{localhost}}} Adresse (IPv4-only!) "lauschen" lassen:{{{

Zeile 94: Zeile 100:
Die SSH Server Software kann alternativ auch deinstalliert werden, allerdings benötigt das Paket {{{x2goclient}}} den SSH-Server und installiert ihn mit.

Entfernt man den SSH Server, dann wir der X2Go Client ebenfalls deinstalliert. Es wird nicht empfohlen, den SSH-Server zu deaktivieren, da er von X2Go Client benötigt wird. Sinnvoller ist die SSH-Dienst-Zugriffseinschränkung auf localhost (s.o.).
Zeile 125: Zeile 135:
+*;*;*;Al0000-2400;dialout,cdrom,floppy,audio,video,plugdev,netdev,powerdev,fuse +*;*;*;Al0000-2400;audio,bluetooth,cdrom,dip,floppy,netdev,plugdev,scanner,video
Zeile 130: Zeile 140:
==== PXE-Bootumgebung für Diskless Workstations ==== === PXE-Bootumgebung für Diskless Workstations ===
Zeile 134: Zeile 144:
====== PXE-Bootumgebung anlegen ====== ==== PXE-Bootumgebung anlegen ====
Zeile 143: Zeile 153:
====== Anpassen des Standard-Images für PXE-Boot ====== ==== Anpassen des Standard-Images für PXE-Boot ====
Zeile 170: Zeile 180:
====== LDAP: DHCP-Gruppen für PXE-Bootumgebung ====== ==== LDAP: DHCP-Gruppen für PXE-Bootumgebung ====

Einrichtung des Diskless Workstation Chroot

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 bullseye main
deb http://packages.it-zukunft-schule.de/debian bullseye-backports main
"""

$ apt-get update --allow-insecure-repositories && apt-get install itzks-keyring && apt-get update && apt-get install itzks-systems-common

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

Danach das Chroot verlasse (Kommando: exit) und für die Boot-Umgebung das aktuelle Kernel-Image (+ InitRamDisk) bereitstellen:

# ltsp kernel /srv/ltsp/*

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

Wenn man SSH-Zugriff auf Diskless Workstations unterbinden möchte, dann sollte man den SSH Dienst auf Diskless Workstations nur auf der localhost Adresse (IPv4-only!) "lauschen" lassen:

--- /etc/ssh/sshd_config.orig   2012-08-04 11:14:11.419983048 +0200
+++ /etc/ssh/sshd_config        2012-08-04 11:17:53.643836494 +0200
@@ -5,7 +5,8 @@
 Port 22
 # Use these options to restrict which interfaces/protocols sshd will bind to
 #ListenAddress ::
-#ListenAddress 0.0.0.0
+AddressFamily inet
+ListenAddress 127.0.0.1
 Protocol 2
 # HostKeys for protocol version 2
 HostKey /etc/ssh/ssh_host_rsa_key

Die SSH Server Software kann alternativ auch deinstalliert werden, allerdings benötigt das Paket x2goclient den SSH-Server und installiert ihn mit.

Entfernt man den SSH Server, dann wir der X2Go Client ebenfalls deinstalliert. Es wird nicht empfohlen, den SSH-Server zu deaktivieren, da er von X2Go Client benötigt wird. Sinnvoller ist die SSH-Dienst-Zugriffseinschränkung auf localhost (s.o.).

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;audio,bluetooth,cdrom,dip,floppy,netdev,plugdev,scanner,video
+

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.

  • das Programm ldapvi aufrufen:

    <user>@tjener:~$ ldapvi -ZZZ -D cn=admin,ou=ldap-access,dc=skole,dc=skolelinux,dc=no
  • für die DN cn=admin,ou=ldap-access,dc=skole,dc=skolelinux,dc=no das Kennwort der Hauptserver-Installation verwenden

  • die folgenden Zeilen (LDIF-Format) an die Textausgabe in ldapvi anhängen:

    add cn=diskless-and-localdisk-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
    dhcpStatements: filename "/srv/tftp/diskless+localdisk+x2go/pxelinux.0"
    dhcpStatements: next-server disklserver
    cn: diskless-and-localdisk-workstations
    objectClass: top
    objectClass: dhcpGroup
    objectClass: dhcpOptions
    
    add cn=diskless-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
    dhcpStatements: filename "/srv/tftp/diskless+x2go/pxelinux.0"
    dhcpStatements: next-server disklserver
    cn: diskless-workstations
    objectClass: top
    objectClass: dhcpGroup
    objectClass: dhcpOptions
    
    add cn=skolelinux-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
    dhcpStatements: filename "/srv/tftp/skolelinux+x2go/pxelinux.0"
    dhcpStatements: next-server disklserver
    cn: skolelinux-workstations
    objectClass: top
    objectClass: dhcpGroup
    objectClass: dhcpOptions
    
    add cn=ubuntu-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
    dhcpStatements: filename "/srv/tftp/ubuntu+x2go/pxelinux.0"
    dhcpStatements: next-server disklserver
    cn: ubuntu-workstations
    objectClass: top
    objectClass: dhcpGroup
    objectClass: dhcpOptions
    
    add cn=windows-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
    dhcpStatements: filename "/srv/tftp//windows+x2go/pxelinux.0"
    dhcpStatements: next-server disklserver
    cn: windows-workstations
    objectClass: top
    objectClass: dhcpGroup
    objectClass: dhcpOptions
    
    add cn=x2go-thinclients,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
    dhcpStatements: filename "/srv/tftp/x2go-tce/pxelinux.0"
    dhcpStatements: next-server disklserver
    cn: x2go-thinclients
    objectClass: top
    objectClass: dhcpGroup
    objectClass: dhcpOptions

IT-Zukunft Schule: Technik/Installation/VM/DisklessServer/DLWChroot/bullseye (zuletzt geändert am 2022-01-05 12:27:41 durch MikeGabriel)