Netboot Server

Zur Verwaltung des Netboot-Clients ist ein weiterer (virtueller) Server nötig, der die folgenden Dienste bereitstellt:

  • PXE Server zum Start des Installationsprozesses über das Netzwerk

  • Git-Server, um die ansible-Playbooks zur Konfiguration des Clients zur Verfügung zu stellen.

  • APT-Cache, der die zur Installation des Clients benötigten Pakete zwischenspeichert, so dass diese nicht für jede Installation erneut aus dem Internet geladen werden müssen.

  • Ein http-Server, der die Möglichkeit bietet, weitere Dateien einfach an die Clients verteilen zu können.

Hinweis

Der Betrieb des Netboot-Servers greift nicht in ein bestehendes Linuxmuster-Netz ein. Die Funktionaltität von linuxmuster.net wird dadurch nicht beeinträchtigt, es wird lediglich eine weitere Möglchkeit der Clientverwaltung möglich gemacht.

Installation und Vorbereitung

Basis des Netboot Servers ist eine VM mit Debian stable.

  • Ein weiteres Gerät wird in linuxmuster.net als „Server“ aufgenommen, es ist sicherzustellen, dass die dort vergebene IP-Adresse ohne Proxy das Internet erreichen kann.

  • Es wird eine VM angelegt, 40GB HDD und 2GB RAM sollten reichen.

  • Installation von Debian 12 (bookworm) vom Netinstall-Image: https://www.debian.org/devel/debian-installer/index.de.html Im Verlauf der Installation wird ein nicht privilegierter Nutzer angelegt, dieser sollte ansible heißen, damit diese Dokumentation funktioniert.

  • Bei der Paketauswahl benötigt man keine Desktopumgebung, lediglich die Standard-Systemwerkzeuge und der openssh-server müssen ausgewählt und installiert werden.

Anschließend startet man die VM neu und bereitet den Netboot Server als Benutzer root vor.

  • Installation elementarer Pakete: apt install ansible git sudo sshpass vim

  • Der ansible Benutzer muss der Gruppe sudo hinzugefügt werden: usermod -G sudo ansible

Netboot-Server einrichten

Als Benutzer ansible neu anmelden, damit die neue Gruppe übernommen wird, und die Einrichtung vorbereiten:

  • Erzeuge einen SSH Key, mit dem du später von der Netboot-Box auf die Clients zugreifen kannst: ssh-keygen -t ed25519

  • Klone das Netboot-Client Repository: git clone https://codeberg.org/lmn7-netboot/lmn7-netboot-client.git und wechsle in das dadurch erzeugte Verzeichnis.

  • Optional aber empfohlen: Erzeuge einen eigenen Branch des Repos für deine Schule, in denen du deine Änderungen verwalten kannst git checkout -b myschool. myschool durch deinen Wunschnamen ersetzen.

  • Editiere die Datei setup.vars. Trage den zuvor erzeugten Public-Key und deinen Branch dort ein. Wenn du keinen eigenen Branch erzeugt hast, belasse den Eintrag auf main. Passe die Optionen für die Passwörter des ansible Benutzers auf dem Client, den NTP Server und das Passwort des global-admin an.

Hinweis

Dieses Verzeichnis wird in verschiedene Konfigurationen des Netboot-Servers eingetragen, es darf darum nicht verschoben oder umbenannt werden, andernfalls wird die Funktionsfähigkeit des Netboot-Clients zerstört.

Der Netboot-Server basiert auf der Livebox aus dem debian-lan-ansible Projekt (https://salsa.debian.org/andi/debian-lan-ansible), darum kommt zr Erstkonfiguration das ansible-Playbook livebox.yml zum Einsatz.

Melde dich einmal via ssh am lokalen Host an: ssh ansible@localhost. Vertraue auf Nachfrage dem Hostkey von localhost.

Im Verzeichnis des geklonten Netboot-Client Repos führst du jetzt den Befehl

ansible-playbook -k -K --extra-vars "@setup.vars" -i 'localhost,' livebox.yml

aus.

Du wirst nach zwei Passwörtern gefragt, SSH password und BECOME password[defaults to SSH password]:. Beim ersten Passwort muss das des Benutzers ansible auf der Netboot-Box angegeben werden, das zweite Passwort kann leer gelassen werden, dann wird hier dasselbe Passwort verwendet.

Das Playbook muss fehlerfrei durchlaufen, anschließend kannst du den Netboot-Server neu starten. Der Netboot Server ist jetzt einsatzbereit und wird von nun an „von Hand“ weitergepflegt.

Achtung

Lösche unbedingt die Datei setup.vars - diese wird nun nicht mehr benötigt - und das Repo ist jetzt im Netz verfügbar, da die dort enthaltenen Playbooks von nun an die Konfiguration des Netboot-Clients steuern. Somit kann jeder, der das weiss die dort hinterlegten Kennwörter per git „auschecken“.

  • rm setup.vars

  • git add .

  • git commit -m "Setup Variablen gelöscht"