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.htmlIm Verlauf der Installation wird ein nicht privilegierter Nutzer angelegt, dieser sollteansibleheiß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 vimDer ansible Benutzer muss der Gruppe
sudohinzugefü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 ed25519Klone das Netboot-Client Repository:
git clone https://codeberg.org/lmn7-netboot/lmn7-netboot-client.gitund 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.myschooldurch 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 aufmain. 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"