Aus dem Tagebuch eines IT-Nomaden

Aufzucht

Große Systemlandschaften mithilfe von Cobbler und Spacewalk verwalten – für viele Admins heute eine Selbstverständlichkeit. Was aber, wenn eine solche Landschaft gerade erst im Aufbau ist? Dass hier nicht immer eine Menge Handarbeit notwendig ist, zeigt mein Tagebuch-Bericht in diesem Monat.
Duell der Datenbanken: In einem Shootout messen sich MySQL und PostgreSQL. Der Schwerpunkt vom ADMIN 06/2011 überprüft, wer schneller ist und gibt einen ... (mehr)

Das erste Meeting mit dem Kunden ist gerade vorbei, und er sieht zufrieden aus, aber doch nicht völlig überzeugt. Vielleicht denkt er: "Kann der Kerl mit dem roten Hut das wirklich halten, was er da eben so vollmundig versprochen hat? Schließlich geht es nicht nur um eine Handvoll, sondern um mehrere Hundert Systeme. Wie will der denn in der kurzen Zeit alle Rechner installieren, konfigurieren und mit unserer Software versorgen?"

Zugegeben, die Anzahl der Maschinen ist für den zur Verfügung stehenden Zeitraum schon enorm, aber mithilfe des Cobbler-XMLRPC-API sollte das Anlegen der vielen System-Profile in der Cobbler-Datenbank kein großes Problem darstellen. Dank intensiver Gespräche mit dem Kunden weiß ich nun auch, welche Art von Systemen er hat und wie diese zu konfigurieren sind. Das lässt sich eigentlich alles recht leicht über eine passende Struktur und ein ausgefeiltes Kickstart-Profil im Spacewalk-Server lösen. Zu dem Thema gibt es einen Artikel im ADMIN-Magazin [1]. Also stellen die vielen Cobbler-Systemeinträge wirklich die größte Hürde dar. Zur Erinnerung: Mithilfe dieser Systemeinträge ist Cobbler in der Lage, für jedes System eine individuelle PXE-Konfigurationsdatei zu generieren. Dank sogenannter Snippets, die später im Kickstart-Profil zum Einsatz kommen, ist die Individualisierung eines Systems bereits zu einem sehr frühen Zeitpunkt möglich. Dies gilt beispielsweise für das zu installierende Betriebssystem, die Netzwerkkonfiguration und, dank beliebiger Variablen, die sich als Kernel-Argumente in Cobbler definieren lassen, für eigentlich jede nur denkbare Konfigurationseinstellung.

Mit ein bisschen Script-Foo kommen diese Variablen dann während der Installation zum Einsatz und passen das System den eigenen Wünschen an. Ist ein solcher Eintrag für einen Rechner erst einmal erzeugt, ist der eigentlich nur noch zu starten, um eine vollkommen automatisierte Installation mittels PXE anzustoßen. Die Aufgabe besteht jetzt darin, diese Einträge erst einmal in die Cobbler-Datenbank aufzunehmen. Ein klassischer Aufruf hierfür sieht beispielsweise wie in Listing 1 aus.

Listing 1

Systemeinstellungen

 

Alles kein Problem, wenn es sich nur um ein paar Maschinen handelt, die notwendigen Befehle sind schnell ausgeführt. Was aber, wenn der Kunde gerne 1000 Maschinen installiert haben möchte? 1000 Einträge von Hand eingeben? Keine angenehme Aufgabe. Ein Shell-Skript? Klingt schon ganz gut, aber es geht noch besser.

Cobbler bietet neben dem manuellen Anlegen dieser Systemeinträge die Möglichkeit, diese Aufgabe mittels einer Python- oder XMLRPC-API zu automatisieren. Welche der beiden Schnittstellen man wählt, ist Geschmackssache. Wegen einiger negativer Erlebnisse mit der Python-API entscheide ich mich für XMLRPC. XMLRPC ((Extensible Markup Language Remote Procedure Call) ist vereinfacht ausgedrückt ein standardisierter Weg für Computerprogramme, sich über ein Netzwerk auszutauschen und Daten zu versenden und zu empfangen. Welche Daten zu übertragen sind, das legen verschiedene Methodenaufrufe fest. Über das HTTP-Protokoll gelangen die Daten dann – in XML-Form – an den anfragenden Client. Praktisch jede moderne Sprache bietet heute ein XML-Interface an. Hier kommt der Einfachheit halber Python zum Einsatz.

Einen ersten Einstieg zeigt Listing 2. Neben dem obligatorischen Importieren der »xmlrpclib« , erzeugt der Aufruf in Zeile 2 ein Objekt zum Verbinden mit dem Cobbler-Server. Zeile 3 erzeugt ein passendes Token zum Login. Mit diesem Token erhalten alle Spacewalk-Benutzer automatisch Zugang zum Cobbler-Server. Hierfür ist jedoch noch eine Anpassung in »/etc/cobbler/settings« notwendig. Dort ist die Anweisung »redhat_management_permissive« auf 1 zu setzen. Zeile 4 gibt alle vorhandenen System-Einträge aus.

Listing 2

Basics

 

Listing 3 zeigt ein etwas umfangreicheres Beispiel. Hier gehe ich davon aus, dass die Systeme mit allen notwendigen Informationen wie beispielsweise IP-, MAC-Adresse, Gateway und so weiter in einer CSV-Datei aufgeführt sind. Diese CSV-Datei schnappt sich das Python-Script, steckt die einzelnen System-Eigenschaften in ein Dictionary, ordnet den einzelnen Dictionary-Keys den passenden Wert zu und übergibt schließlich alles an Cobbler. Das Ergebnis ist das gleiche wie bei dem manuellen Aufruf von Cobbler weiter oben. Mithilfe der XMLRPC-API ist es ein Leichtes, die ganze Systemlandschaft im Cobbler abzubilden. Die notwendigen Systemkonfigurationsdateien für den PXE-Server erzeugt Cobbler dabei automatisch. Nach ein paar Tests und manuellen Anpassungen an den Kickstart-Dateien, auf die Cobbler in den Systemeinträgen verweist, sind alle Systeme schließlich im Handumdrehen installiert. Und das Beste daran ist: Cobbler ist freie Software, die unter der GPL-Lizenz allen zur Verfügung steht. Nach dem ganzen Gerede über Cobbler [2] habe ich nun doch glatt Appetit bekommen. Da ich mich dazu auch noch gerade in den USA aufhalte, versuche ich nun also erstmal ein Restaurant zu finden, in dem es diese leckeren Teigkrusten mit Früchten gibt, die wie die nützliche Software heißen. Bis bald.

Listing 3

Systeminformationen

 

Infos

  1. Thorsten Scherf, Linux-Systeme mit Spacewalk verwalten, ADMIN 04/2010, S. 74
  2. Cobbler-Rezept: http://www.usa-kulinarisch.de/rezept/cobbler-grundrezept/

Der Autor

Thorsten Scherf arbeitet als Senior Consultant für Red Hat EMEA. Er ist oft als Vortragender auf Konferenzen anzutreffen. Wenn ihm neben der Arbeit und Familie noch Zeit bleibt, nimmt er gerne an Marathonläufen teil.

comments powered by Disqus
Mehr zum Thema

Automatisierte Installation mit Cobbler

Mit Cobbler wird die automatisierte Installation von Linux-Rechnern zum Kinderspiel. Wir zeigen, wie Sie damit Xen- und Vmware-Images verwalten.

Artikel der Woche

Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2018