17077
Kommentar:
|
13229
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 31: | Zeile 31: |
Um sich als Admin-User (bzw. allgemein als LDAP-User) am System anzumelden, muss eine /etc/krb5.keytab Datei auf {{{disklserver.intern}}} angelegt werden. Dies erfolgt über folgenden Befehlsaufruf: | Zum aktuellen Zeitpunkt (Debian Edu 11.2 Release) kommt es bei der Installation eines Minimal-Profils zu einem Fehler. Es fehlt das DEB-Paket {{{libpam-krb5}}}. Dies muss nachinstalliert werden (vergl. [[https://bugs.debian.org/1002299|Debian bug #1002299]]): {{{ apt-get install libpam-krb5 }}} Um als Admin-User (bzw. allgemein als LDAP-User) bei Anmeldung System eine Verbindung zum $HOME-Verzeichnis auf {{{tjener.intern}}} zu erhalten, muss eine /etc/krb5.keytab Datei auf {{{disklserver.intern}}} kopiert werden (welche die Principals für {{{host/disklserver.intern}}} und {{{nfs/disklserver.intern}}} enthält. Dies erfolgt über folgenden Befehlsaufruf: |
Zeile 42: | Zeile 50: |
Danach sollte es möglich sein, sich mit einem LDAP-Benutzerkonto an {{{disklserver.intern}}} via Login TTY od. SSH einzuloggen. |
|
Zeile 44: | Zeile 54: |
* Nach der Installation und dem ersten Start führen wir die folgenden Änderungen an der VM-Konfiguration von {{{disklserver.intern}}} durch. Hierfür muss die VM herunter gefahren werden und die VM-Konfiguration in {{{virt-manager}}} muss aufgerufen werden. * zweite Festplatte hinzufügen: {{{disklserver.intern_sdb}}} |
* Nach der Installation und dem ersten Start führen wir die folgenden Änderungen an der VM-Konfiguration von {{{disklserver.intern}}} durch. Hierfür muss die VM herunter gefahren werden und die VM-Konfiguration angepasst werden: * zweite Festplatte hinzufügen (Name für libVirt: {{{disklserver.intern_sdb}}}) |
Zeile 48: | Zeile 58: |
==== Paket-Quellen für Debian squeeze-backports und ITZkS dem Diskless Workstations Server hinzufügen ==== {{{ $ editor /etc/apt/sources.list.d/backports.list |
==== Paket-Quellen für ITZkS aktivieren ==== Für den Diskless-Workstation-Server gibt es ein eigenes Overlay-Paket, welches aus dem IT-Zukunft Schule Projekt-APT-Repository installiert wird: {{{ root@disklserver:~# editor /etc/apt/sources.list.d/itzks.list |
Zeile 55: | Zeile 67: |
deb http://ftp.de.debian.org/debian stretch-backports main contrib non-free | deb http://packages.it-zukunft-schule.de/debian bullseye main contrib non-free |
Zeile 58: | Zeile 70: |
$ 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 |
root@disklserver:~# apt-get --allow-insecure-repositories update && apt-get install itzks-keyring && apt-get update root@disklserver:~# apt-get install itzks-systems-common }}} Bei der Installation von {{{itzks-systems-common}}} wird das Kürzel der Schule / des Schulkundens abgefragt. Diese Kürzel sind im Paket hinterlegt. Es besteht die Möglichkeit, ein Kürzel für die eigene Schule zu beantragen. Bitte dafür Kontakt mit Mike Gabriel vom IT-Zukunft Schule Projekt aufnehmen. Nach der Installation von {{{itzks-systems-common}}} dann folgenden Befehl aufrufen: {{{ root@disklserver:~# itzks-systems.do_preseed Preseeding ocsinventory-agent/tag to <SCHOOL> Preseeding ocsinventory-agent/method to http Preseeding ocsinventory-agent/server to inventory.it-zukunft-schule.de Silently running dpkg-reconfigure on package ocsinventory-agent ... DONE. |
Zeile 70: | Zeile 90: |
* Die folgenden Pakete sollten nachinstalliert werden:{{{ $ sudo apt-get install itzks-systems-disklserver |
Die weitere Software wird über die Installation des Meta- und Config-Pakets {{{itzks-systems-disklserver}}} installiert: {{{ root@disklserver:~# sudo apt-get install itzks-systems-disklserver |
Zeile 97: | Zeile 119: |
Debian Edu System setzen beim Systemstart einen erreichbaren Hauptserver voraus. Für Debian Edu Server-VMs ergibt sich die Anforderung einer Boot-Verzögerung. | Debian Edu Systeme setzen beim Systemstart einen erreichbaren Hauptserver voraus. Für Debian Edu Server-VMs ergibt sich die Anforderung einer Boot-Verzögerung, die z.B. bei Stromausfall dafür sorgt, dass der Haupt-Server nach Neustart aller Systeme verfügbar ist. |
Zeile 120: | Zeile 142: |
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. | Schul-Admins und IT-Dienstleister:innen tragen wir in der LDAP-Gruppe {{{admins}}} ein. Junior-Admins (z.B. Schüler:innen einer Computer-AG) tragen wir in der Gruppe {{{jradmins}}} ein. |
Zeile 146: | Zeile 168: |
=== Einrichtung des Diskless Workstation Chroot === |
=== Puppet Agent === Wie jede Maschine in einem ITZkS-basierten Debian Edu Netzwerk, wird auf {{{faiserver.intern}}} wird Puppet verwaltet. Hierzu muss der Agent einmalig ausgeführt werden:{{{ $ sudo -i $ http_proxy= https_proxy= puppet agent --test }}} Danach muss auf {{{tjener.intern}}} eine Freischaltung (Signierung) des Host(-Zertifikats) durchgeführt werden:{{{ $ sudo puppet ca sign faiserver.intern }}} Abschließend nochmal den Puppet Agent durchlaufen lassen und den Dienst auch aktivieren:{{{ $ sudo -i $ http_proxy= https_proxy= puppet agent --test $ puppet agent --enable $ systemctl enable --now puppet }}} === Vorbereitungen für Diskless Workstation Chroot === |
Zeile 151: | Zeile 192: |
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 |
Zunächst muss der für das Diskless Workstation Chroot Image vorgesehene Festplattenplatz vorbereitet werden: {{{ root@disklserver:~# fdisk /dev/sdb # eine Partition: sdb1, Partitionstyp: 8e root@disklserver:~# pvcreate /dev/sdb1 root@disklserver:~# vgextend vg_system /dev/sdb1 root@disklserver:~# lvcreate vg_system -n srv -L 60G root@disklserver:~# mkfs.ext4 /dev/vg_system/srv }}} |
Zeile 168: | Zeile 214: |
* und zuletzt das Dateisystem mounten (unter der Voraussetzung, dass {{{/srv}}} keine Daten enthält):{{{ $ sudo mount /srv }}} ==== 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 ===== 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:{{{ --- /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 172.0.0.1 Protocol 2 # HostKeys for protocol version 2 HostKey /etc/ssh/ssh_host_rsa_key }}} ===== 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. * 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" |
... und zuletzt das Dateisystem mounten (unter der Voraussetzung, dass {{{/srv}}} keine Daten enthält): {{{ root@disklserver:~# sudo mount /srv }}} === DLW Chroot bereitstellen === Das Management der Diskless Workstations erfolgt mit dem Tool LTSP. Das DLW Chroot wird zentral gepflegt und per Skript auf die DLW Server in den versch. Schulen übertragen. Das Chroot wird wahlweise nächtlich per rsync oder einmalig von einem zentralen Host auf den Schulserver synchronisiert. Die einmalige Bereitstellung des jeweils aktuellen DLW Images erfolgt auf Nachfrage. Das regelmäßige Update (meist zu Debian Point-Releases) erfolgt nur kostenpflichtig. Das DLW Chroot wird im Ordner {{{/srv/ltsp/dlw+bullseye+amd64}}} bereit gestellt. Das DLW Chroot kann so wie es ist mittels LTSP startbar gemacht werden, es empfiehlt sich aber wegen der besseren Performanz, das Chroot zu einem Squashfs Image umzuwandeln und dann das Squashfs Image per PXE zu starten und nicht das Chroot selbst. Das Squashfs-Image (und auch die Aktualisierung der PXE-Umgebung) kann mit dem Skript {{{itzks-update-disklserver-squashfs-images}}} erfolgen:{{{ $ itzks-update-disklserver-squashfs-images Running: mount -t tmpfs -o mode=0755 tmpfs /srv/tmp/tmp.b3kQRsMM76/tmpfs Running: mount -t overlay -o upperdir=/srv/tmp/tmp.b3kQRsMM76/tmpfs/0/up,lowerdir=/srv/ltsp/dlw+amd64+bullseye,workdir=/srv/tmp/tmp.b3kQRsMM76/tmpfs/0/work /srv/tmp/tmp.b3kQRsMM76/tmpfs /srv/tmp/tmp.b3kQRsMM76/root/ Trying to acquire package management lock: /srv/ltsp/dlw+amd64+bullseye/var/lib/dpkg/lock Cleaning up dlw+amd64+bullseye before mksquashfs... Replacing /srv/tmp/tmp.b3kQRsMM76/root/etc/ssh/ssh_host_ecdsa_key Replacing /srv/tmp/tmp.b3kQRsMM76/root/etc/ssh/ssh_host_ed25519_key Replacing /srv/tmp/tmp.b3kQRsMM76/root/etc/ssh/ssh_host_rsa_key Generating a RSA private key ..................+++++ .............................................................................................................................................................................................+++++ writing new private key to '/srv/tmp/tmp.b3kQRsMM76/root/etc/ssl/private/ssl-cert-snakeoil.key' ----- Parallel mksquashfs: Using 4 processors Creating 4.0 filesystem on /srv/ltsp/images/dlw+amd64+bullseye.img.tmp, block size 131072. [========/ ] 73160/855010 8% }}} Der Vorgang (Squashfs Image bauen) dauert relativ lange und sollte ggf. in einem {{{screen}}}-Terminal ausgeführt werden. ==== DLW Chroot via LTSP startbar machen ==== Aktuell sind einige manuelle Schritte nötig, um das DLW Chroot über PXE starbar zu machen. Zunächst muss die NFS-Server Konfiguration von debian-edu-config deaktiviert werden. Hierfür müssen alle Zeilen in {{{/etc/exports.d/edu.exports}}} auskommentiert werden. Danach den NFS Kernel Server neustarten:{{{ $ sudo invoke-rc.d nfs-kernel-server restart }}} Danach müssen folgende LTSP Befehle ausgeführt werden:{{{ $ sudo ltsp ipxe $ sudo ltsp kernel $ sudo ltsp initrd $ sudo ltsp nfs }}} ==== Diskless Workstations via PXE anbieten ==== Schließlich muss das Booten als Diskless Workstation über PXE via LDAP angeboten werden. Hierfür muss folgendes LDAP-Snippet nach LDAP importiert werden:{{{ dn: cn=diskless-workstation,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,[========/ ] 73160/855010 8% ou=systems,dc=skole,dc=skolelinux,dc=no |
Zeile 357: | Zeile 271: |
cn: diskless-and-localdisk-workstations | cn: diskless-workstation |
Zeile 361: | Zeile 275: |
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 }}} |
}}} |
Diskless Workstation Server (bullseye)
Inhaltsverzeichnis
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.
Die VM fährt hoch und bootet über PXE ins iPXE Bootmenü. Hier bitte den 64bit Installer auswählen.
Es startet der Debian (Edu) Installer im grafischen Modus:
- Installationsprofil: Minimal
- Automatische Partitionierung: ja
- Paketerfassung verwenden: Ja
- Kennwort für root festlegen
Wichtig: Nach der Installation von disklserver.intern, aber vor dem ersten Start muss der Server im Debian Edu / Skolelinux Netzwerk bekannt gemacht werden:
- GOsa² auf TJENER:
System (Typ: Server) anlegen für disklserver.intern
Beschreibung: Diskless Workstations Image Server
IP: 10.0.2.9
- ermittelte MAC-Adresse eintragen (vergl. Info-Seite bzgl. VM-Instanz Setup, s.o.)
- DHCP (10.0.0.0-Netz)
- DNS aktivieren
NIS Netgroups Eintrag in Gruppe: server-hosts (hierfür muss der Systemeintrag in GOsa² erstmal angelegt worden sein, danach nochmal die NIS Netgroup nachbearbeiten)
- GOsa² auf TJENER:
Konfiguration
Nach dem Neustart der VM disklserver.intern sollte der Hostname des gestarteten Systems auf disklserver.intern gesetzt sein. Wird stattdessen ein Hostname angezeigt, der die MAC-Adresse der primären NIC des Systems enthält, hat die Eintragung des Systems in GOsa² nicht funktioniert. Bevor man weiter fortfahren kann, muss dieser Fehler behoben werden.
Zum aktuellen Zeitpunkt (Debian Edu 11.2 Release) kommt es bei der Installation eines Minimal-Profils zu einem Fehler. Es fehlt das DEB-Paket libpam-krb5. Dies muss nachinstalliert werden (vergl. Debian bug #1002299):
apt-get install libpam-krb5
Um als Admin-User (bzw. allgemein als LDAP-User) bei Anmeldung System eine Verbindung zum $HOME-Verzeichnis auf tjener.intern zu erhalten, muss eine /etc/krb5.keytab Datei auf disklserver.intern kopiert werden (welche die Principals für host/disklserver.intern und nfs/disklserver.intern enthält. Dies erfolgt über folgenden Befehlsaufruf:
root@disklserver:~# /usr/share/debian-edu-config/tools/copy-host-keytab Passwort für root@INTERN: disklserver.intern.keytab 100% 324 9.0KB/s 00:00 root@disklserver:~#
Danach sollte es möglich sein, sich mit einem LDAP-Benutzerkonto an disklserver.intern via Login TTY od. SSH einzuloggen.
Fine-Tuning der VM-Einstellungen
Nach der Installation und dem ersten Start führen wir die folgenden Änderungen an der VM-Konfiguration von disklserver.intern durch. Hierfür muss die VM herunter gefahren werden und die VM-Konfiguration angepasst werden:
zweite Festplatte hinzufügen (Name für libVirt: disklserver.intern_sdb)
- VM wieder anschalten und in der VM weiterarbeiten
Paket-Quellen für ITZkS aktivieren
Für den Diskless-Workstation-Server gibt es ein eigenes Overlay-Paket, welches aus dem IT-Zukunft Schule Projekt-APT-Repository installiert wird:
root@disklserver:~# editor /etc/apt/sources.list.d/itzks.list """ deb http://packages.it-zukunft-schule.de/debian bullseye main contrib non-free """ root@disklserver:~# apt-get --allow-insecure-repositories update && apt-get install itzks-keyring && apt-get update root@disklserver:~# apt-get install itzks-systems-common
Bei der Installation von itzks-systems-common wird das Kürzel der Schule / des Schulkundens abgefragt. Diese Kürzel sind im Paket hinterlegt. Es besteht die Möglichkeit, ein Kürzel für die eigene Schule zu beantragen. Bitte dafür Kontakt mit Mike Gabriel vom IT-Zukunft Schule Projekt aufnehmen.
Nach der Installation von itzks-systems-common dann folgenden Befehl aufrufen:
root@disklserver:~# itzks-systems.do_preseed Preseeding ocsinventory-agent/tag to <SCHOOL> Preseeding ocsinventory-agent/method to http Preseeding ocsinventory-agent/server to inventory.it-zukunft-schule.de Silently running dpkg-reconfigure on package ocsinventory-agent ... DONE.
Software nachinstallieren
Die weitere Software wird über die Installation des Meta- und Config-Pakets itzks-systems-disklserver installiert:
root@disklserver:~# sudo apt-get install itzks-systems-disklserver
System konfigurieren
Login als root
Standard-Editor festlegen (an der Unix-Console)
$ update-alternatives --config editor
Hier vim.basic auswählen.
Das Programm Midnight Commander starten (Kommando: mc):
- F9 drücken
Optionen -> Konfiguration: [x] Internen Editor benutzen
Optionen -> Einstellungen speichern
- F10: Midnight Commander beenden
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 Systeme setzen beim Systemstart einen erreichbaren Hauptserver voraus. Für Debian Edu Server-VMs ergibt sich die Anforderung einer Boot-Verzögerung, die z.B. bei Stromausfall dafür sorgt, dass der Haupt-Server nach Neustart aller Systeme verfügbar ist.
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:innen tragen wir in der LDAP-Gruppe admins ein. Junior-Admins (z.B. Schüler:innen einer 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
Puppet Agent
Wie jede Maschine in einem ITZkS-basierten Debian Edu Netzwerk, wird auf faiserver.intern wird Puppet verwaltet. Hierzu muss der Agent einmalig ausgeführt werden:
$ sudo -i $ http_proxy= https_proxy= puppet agent --test
Danach muss auf tjener.intern eine Freischaltung (Signierung) des Host(-Zertifikats) durchgeführt werden:
$ sudo puppet ca sign faiserver.intern
Abschließend nochmal den Puppet Agent durchlaufen lassen und den Dienst auch aktivieren:
$ sudo -i $ http_proxy= https_proxy= puppet agent --test $ puppet agent --enable $ systemctl enable --now puppet
Vorbereitungen für 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:
root@disklserver:~# fdisk /dev/sdb # eine Partition: sdb1, Partitionstyp: 8e root@disklserver:~# pvcreate /dev/sdb1 root@disklserver:~# vgextend vg_system /dev/sdb1 root@disklserver:~# lvcreate vg_system -n srv -L 60G root@disklserver:~# 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
... und zuletzt das Dateisystem mounten (unter der Voraussetzung, dass /srv keine Daten enthält):
root@disklserver:~# sudo mount /srv
DLW Chroot bereitstellen
Das Management der Diskless Workstations erfolgt mit dem Tool LTSP.
Das DLW Chroot wird zentral gepflegt und per Skript auf die DLW Server in den versch. Schulen übertragen. Das Chroot wird wahlweise nächtlich per rsync oder einmalig von einem zentralen Host auf den Schulserver synchronisiert. Die einmalige Bereitstellung des jeweils aktuellen DLW Images erfolgt auf Nachfrage. Das regelmäßige Update (meist zu Debian Point-Releases) erfolgt nur kostenpflichtig.
Das DLW Chroot wird im Ordner /srv/ltsp/dlw+bullseye+amd64 bereit gestellt. Das DLW Chroot kann so wie es ist mittels LTSP startbar gemacht werden, es empfiehlt sich aber wegen der besseren Performanz, das Chroot zu einem Squashfs Image umzuwandeln und dann das Squashfs Image per PXE zu starten und nicht das Chroot selbst.
Das Squashfs-Image (und auch die Aktualisierung der PXE-Umgebung) kann mit dem Skript itzks-update-disklserver-squashfs-images erfolgen:
$ itzks-update-disklserver-squashfs-images Running: mount -t tmpfs -o mode=0755 tmpfs /srv/tmp/tmp.b3kQRsMM76/tmpfs Running: mount -t overlay -o upperdir=/srv/tmp/tmp.b3kQRsMM76/tmpfs/0/up,lowerdir=/srv/ltsp/dlw+amd64+bullseye,workdir=/srv/tmp/tmp.b3kQRsMM76/tmpfs/0/work /srv/tmp/tmp.b3kQRsMM76/tmpfs /srv/tmp/tmp.b3kQRsMM76/root/ Trying to acquire package management lock: /srv/ltsp/dlw+amd64+bullseye/var/lib/dpkg/lock Cleaning up dlw+amd64+bullseye before mksquashfs... Replacing /srv/tmp/tmp.b3kQRsMM76/root/etc/ssh/ssh_host_ecdsa_key Replacing /srv/tmp/tmp.b3kQRsMM76/root/etc/ssh/ssh_host_ed25519_key Replacing /srv/tmp/tmp.b3kQRsMM76/root/etc/ssh/ssh_host_rsa_key Generating a RSA private key ..................+++++ .............................................................................................................................................................................................+++++ writing new private key to '/srv/tmp/tmp.b3kQRsMM76/root/etc/ssl/private/ssl-cert-snakeoil.key' ----- Parallel mksquashfs: Using 4 processors Creating 4.0 filesystem on /srv/ltsp/images/dlw+amd64+bullseye.img.tmp, block size 131072. [========/ ] 73160/855010 8%
Der Vorgang (Squashfs Image bauen) dauert relativ lange und sollte ggf. in einem screen-Terminal ausgeführt werden.
DLW Chroot via LTSP startbar machen
Aktuell sind einige manuelle Schritte nötig, um das DLW Chroot über PXE starbar zu machen.
Zunächst muss die NFS-Server Konfiguration von debian-edu-config deaktiviert werden. Hierfür müssen alle Zeilen in /etc/exports.d/edu.exports auskommentiert werden. Danach den NFS Kernel Server neustarten:
$ sudo invoke-rc.d nfs-kernel-server restart
Danach müssen folgende LTSP Befehle ausgeführt werden:
$ sudo ltsp ipxe $ sudo ltsp kernel $ sudo ltsp initrd $ sudo ltsp nfs
Diskless Workstations via PXE anbieten
Schließlich muss das Booten als Diskless Workstation über PXE via LDAP angeboten werden. Hierfür muss folgendes LDAP-Snippet nach LDAP importiert werden:
dn: cn=diskless-workstation,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,[========/ ] 73160/855010 8% ou=systems,dc=skole,dc=skolelinux,dc=no dhcpStatements: next-server disklserver cn: diskless-workstation objectClass: top objectClass: dhcpGroup objectClass: dhcpOptions