Nachdem ich mich die letzten Blog-Einträge als Liveberichterstatter für diverse Konferenzen präsentiert habe, wird es mal wieder Zeit für etwas technisches. Da ich mich für Foreman sehr begeistern kann und auch viele meiner letzten Projekte sich um das Thema drehten, soll es auch in diesem Blog darum gehen.
Bei Foreman handelt es sich um ein Frontend für Puppet, das neben der üblichen Funktionen noch Provisionierung ergänzt. Standardmäßig liefert es hierbei PXE und entsprechende Templates für die automatisierte Installation aus. Diese Templates decken hierbei mit Kickstart (Red Hat Derivate), Autoyast (SuSE), Preseed (Debian) und Jumpstart (Solaris) schon einiges ab. Will ich nun diese nutzen, muss ich einfach meinen Host anlegen, es wird für die entsprechende MAC-Adresse eine DHCP-Reservierung vorgenommen und wenn das System bootet wird es direkt installiert und konfiguriert.
Noch einfacher ist es wenn ich mittels Compute Resource direkt die benötigte virtuelle Maschine anlegen kann, da ich mir so sogar das Herausfinden der MAC-Adresse sparen kann. Diesen Luxus möchte ich natürlich auch für Hardware-Systeme und damit wäre ich auch bei meinem eigentlichen Thema angekommen: Foreman Discovery.
Bei Foreman Discovery handelt es sich um ein Plugin für Foreman. Diese sind relativ leicht installiert entweder mit yum auf einem Red Hat System oder mittels bundler auf allen anderen Systemen. Die allgemeine Anleitung findet hierfür sich im Foreman Wiki. Plugins können hierbei genauso neue Funktionen in die Foreman Oberfläche integrieren wie in jeden anderen Bereich der Anwendung.
Sobald dann das Plugin erfolgreich installiert ist taucht im Menü ein weiterer Unterpunkt Discovered Hosts unter Provisioning auf. Hier finden sich die entdeckten Hosts, denen dann ein Betriebssystem und Konfiguration zugewiesen werden kann. Der Neustart in den Installationsvorgang passiert dann automatisch direkt nach dem Abschluß der Zuweisung.
Damit die Systeme auftauchen müssen diese ein spezielles Image booten. Dieses gibt es in zwei Versionen basierend auf Tiny Core Linux und oVirt. Ersteres ist etwas schmaller, unterstützt weniger Hardware und soll deshalb zu Gunsten von letzterem abgelöst werden. Für den Produktiveinsatz sind diese ohne Remotezugang und somit einhergehende Manipulationsmöglichkeit konfiguriert, ein Testimage mit Remotezugang gibt es allerdings auch. Wem dies nicht reicht erstellt sich selbst ein Image welches er dabei nach Bedarf anpassen kann.
Mein Tipp nun noch für die Konfiguration im PXE-Menu. Hierbei bitte nicht der Anleitung auf der Plugin-Homepage folgen, sondern einen zweiten Eintrag vornehmen und den Default auf dem lokalen Boot lassen. Dies verhindert, dass irgendwann ein produktives System das Discovery-Image gebootet hat und nicht erreichbar ist. Natürlich muss dann jemand im Discovery-Fall den zweiten Eintrag auswählen, aber dies geht gegebenenfalls über Remotemanagement oder kann der Techniker direkt nach dem Einbau machen.
Somit steht auch Metal as a Service mit Foreman nichts mehr im Wege!

Dirk Götz
Dirk Götz
Principal Consultant

Dirk ist Red Hat Spezialist und arbeitet bei NETWAYS im Bereich Consulting für Icinga, Puppet, Ansible, Foreman und andere Systems-Management-Lösungen. Früher war er bei einem Träger der gesetzlichen Rentenversicherung als Senior Administrator beschäftigt und auch für die Ausbildung der Azubis verantwortlich wie nun bei NETWAYS.