Seite wählen

NETWAYS Blog

Schulungsnotebooks in neuem Gewand

In diesem Jahr konnten wir endlich wieder mehr Vor-Ort Trainings durchführen als in den vergangenen Jahren und sogar vereinzelte Inhouse-Trainings bei Kunden waren möglich. Bisher haben wir bei unseren Präsenztrainings oder auch -workshops auf Notebooks mit CentOS 7 gesetzt, und zwar deshalb weil die automatische Provisionierung durch unseren sog. „Event“-Foreman in Kombination mit Puppet seit langer Zeit gut funktioniert.

Recovery-Eintrag

Da es in der Vergangenheit für die Kollegen allerdings sehr aufwändig war die Notebooks nach jedem Training wieder ins Büro zu schleppen, sie zu verkabeln und sie dann von Grund auf neu zu installieren, haben wir uns einen Trick einfallen lassen: Nach der automatischen Grundinstallation des Betriebssystems wird ein LVM-Snapshot des Base Images erstellt. Grob gesagt heißt das der Stand des Base Images wird eingefroren und alles was neu hinzukommt bzw. verändert wird (z.B. individuelle Schulungsvorbereitungen für verschiedene Trainings) belegt zusätzlichen Plattenplatz. Damit lässt sich das ursprüngliche Base Image ohne Neuinstallation eines Notebooks schnell wieder herstellen und kann so auf das nächste Training angepasst werden.

Ein weiterer Vorteil des Ganzen ist das die Schulungsteilnehmer ihre Arbeitsumgebung so gestalten können wie sie möchten und beispielsweise auch uns nicht bekannte Passwörter setzen können, mit dem Löschen des LVM-Snapshots ist alles wieder vergessen. Um es auch technisch nicht so affinen Kollegen einfach möglich zu machen Notebooks „zurückzusetzen“, gibt es hierfür beim Booten unser Schulungsnotebooks einen „Recovery“-Eintrag im GRUB-Bootloader der den LVM-Snapshot des Base Images ohne jedes Zutun zurückspielt und das Notebook anschließend neu startet.

Wie kommen aber nun die individuellen Schulungsvorbereitungen auf die Notebooks? Ist die Frage die wir uns auch gestellt haben. Individuelle Schulungsvorbereitungen können z.B. die virtuelle Maschine(n) für das Training sein, meistens auf Basis von Virtual Box, SSH Keys, Hosteinträge, bestimmte Browser oder andere Applikationen um den Schulungsteilnehmern die praktischen Übungen überhaupt möglich bzw. so einfach wie nur denkbar zu machen. Sie in den Provisionierungsprozess einzubauen scheidet ja aus, da die Notebooks wenn überhaupt nur unregelmäßig neu installiert werden sollen.

Also haben wir uns auch hier etwas überlegt: Wir haben im allgemeinem Base Image ein Bash-Skript mit einem statischen Link zur Nextcloud abgelegt. Dort findet sich ein weiteres Skript das auf die aktuell angebotenen Trainings und die jeweils dafür benötigten Schulungsvorbereitungen verweist. D.h. hier liegen beispielsweise dann auch die aktuellen virtuellen Maschinen. Um das Ganze auf den Notebooks umzusetzen verwenden wir wieder Puppet, hier war die Transition leichter da wir das in der Vergangenheit so ähnlich eh schon im Foreman hatten. Damit auch jeder der Kollegen ein Notebook individualisieren kann, gibt’s hierfür natürlich auch einfache Auswahldialoge. Wurde ein Notebook für ein bestimmtes Training vorbereitet, so löscht sich das Skript zur Vorbereitung und kann erst nach dem Recovery wieder ausgeführt werden.

Beispielhafter Auswahldialog für individuelle Schulungsvorbereitung (teils mit historischen Trainings)

Das alles sollte nun natürlich auch weiterhin funktionieren. Da CentOS 7 ab 2024 keine Maintenance Updates mehr bekommt und wir bei manchen Schulungen die nativ auf den Notebooks durchgeführt werden auch etwas mit den veralteten Versionsständen zu kämpfen haben, fiel unsere Entscheidung auf CentOS Stream 9 als neues Betriebssystem für unsere Schulungsnotebooks. Damit wir überhaupt dran denken konnten CentOS Stream zu provisionieren musste erstmal das Debian auf unserem „Event“-Foreman angehoben werden, danach folgten viele kleine Updates von Foreman 1.22 bis zum aktuellen Release 3.4.0 und auch Puppet bzw. die Puppetmodule mussten aktualisiert werden. Im Foreman selbst waren die Mirrors für CentOS Stream einzurichten, Bereitstellungsvorlagen anzupassen und auch die Partitionierung haben wir aufgrund der gestiegenen Plattenkapazität der Notebooks adaptiert. Für einen automatischen Ablauf der Provisionierung nutzen wir das Foreman Discovery Plugin.

Foreman Discovery der Schulungsnotebooks

Wer sich nun selbst ein Bild von unseren Schulungsnotebooks machen möchte, dem kann ich natürlich auch nicht nur deswegen eines unserer Trainings oder einen unserer angebotenen Workshops ans Herz legen. Vielleicht auch im Zuge der diesjährigen OSMC (Open Source Monitoring Conference).

Markus Waldmüller
Markus Waldmüller
Head of Strategic Projects

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Senior Manager Services gelandet. Seit September 2023 kümmert er sich bei der NETWAYS Gruppe um strategische Projekte. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.

Autoprovisionierung mit Foreman

Da kommende Woche die Open Source Monitoring Conference, kurz OSMC, hier in Nürnberg ansteht, laufen die Vorbereitungen dafür natürlich bei uns auf Hochtouren. Für die Workshops, die seit einigen Jahren traditionell vor der eigentlichen Konferenz allerdings zeitgleich stattfinden, reichen unsere eigenen Notebookbestände der Trainings nicht ganz aus. Deswegen greifen wir hier auf Anbieter für Leihnotebooks zurück um unsere Bestände entsprechend aufzustocken.
Es sollte kein Geheimnis sein das wir die von uns angebotenen Softwarelösungen auch intern einsetzen, daher verwenden wir – wie soll’s auch anders sein – Foreman in Kombination mit Puppet zur Provisionierung der Notebooks. Speziell das Discovery Plugin, über das Dirk schon ein einem früheren Blogpost (siehe Metal as a Service mit Foreman) berichtet hatte, leistet hier seinen Beitrag.
Ist das Plugin installiert wird das PXE-Bootmenü auf den zu provisionierenden Clients um einen Eintrag zum Discovery erweitert. Wählt man diesen aus, stellen die zu provisionierenden Systeme automatisch eine Verbindung zum Foreman-Server her. Bei Erfolg sind sie dort dann unter „Discovered hosts“ zu finden und können so mit entsprechenden Informationen versehen (z.B. Hostname, Host Group, usw.) werden. Anschließend startet dann die Installation.
bildschirmfoto-2016-11-25-um-08-45-05
Mit den Discovery Rules bietet das Discovery Plugin noch eine Möglichkeit den Vorgang etwas zu Vereinfachen bzw. zu Automatisieren. Anhand von bestimmten Kritierien, wie z.B. in unserem Fall das Modell des Notebooks, werden Regeln für die Provisionierung definiert. Wenn sich das Notebook dann via PXE-Boot am Foreman meldet, greifen diese Rules und der Installationsvorgang beginnt ohne weiteres Zutun. U.a. lässt sich in den Discovery Regeln ein Muster für den Hostname anhand von Puppet Facts (beispielsweise eine individuelle ID) sowie die Hostgruppe mit den Informationen für die Installation festgelegen. Außerdem kann man die maximale Anzahl der Hosts für und bei Bedarf eine entsprechende Priorisierung der Regeln einstellen.
Somit bleibt mir eigentlich nur noch den Teilnehmern der diesjährigen OSMC eine erfolgreiche Konferenz zu wünschen! Selbstverständlich bin auch ich wieder vertreten und freue mich über interessante Gespräche – auch zum Thema Foreman.

Markus Waldmüller
Markus Waldmüller
Head of Strategic Projects

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Senior Manager Services gelandet. Seit September 2023 kümmert er sich bei der NETWAYS Gruppe um strategische Projekte. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.