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. .. hint:: 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. .. hint:: 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. .. attention:: 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"``