Aus Linux-Magazin 01/2013

Systeme verwalten und automatisch deployen mit Crowbar

© Paul Jantz, 123RF.com

Mit nach einem Brecheisen und einem Vorschlaghammer benannter Software verspricht die Firma Dell den Admins, in Zeiten des Cloud Computing auch Server auf echter Hardware schneller aufzusetzen als je zuvor. Einen neuen Node zu Open Stack hinzufügen gelingt mit Crowbar schnell und automatisch.

Chef, Puppet, Juju und MaaS: Werkzeuge fürs automatische Deployment von Software gibt es zuhauf, und sie gewinnen stetig an Zulauf. Ein Wunder ist das nicht, müssen doch Admins immer wieder Aufgaben erledigen, die sich automatisieren lassen. Das fängt bei der Neuinstallation von Servern an, die geplant und koordiniert durchgeführt sein will, denn wild gewachsene Systeme – wie früher üblich – wären mit heutigen Ressourcen nicht mehr wartbar. Deployment-Tools wie Crowbar sorgen dafür, glaubt man Entwicklern, dass die Hardware im Verbund mit der Cloud jede Individualität verliert und austauschbar wird.

Abgesehen von einem oder zwei einzelnen Servern, die beispielsweise unter Open Stack als Cloudcontroller dienen, gibt es in der privaten, öffentlichen oder hybriden Wolke nur noch Computing-Knoten, die sich idealerweise gleichen wie ein Ei dem anderen – sowohl Hard- als auch Software. Im besten Fall fängt das sogar schon in dem Moment an, wenn der Techniker die neue Pizzabox ins 19-Zoll-Rack schiebt.

Ein Werkzeug von Dell

Crowbar [1] stammt aus der Feder des Cloud-Edge-Teams von Dell. Nicht gerade für seine Open-Source-Affinität bekannt, hat der Hersteller Crowbar nicht aus purer Nächstenliebe entwickelt: Vielmehr ist es Dells Versuch, einen Fuß in den Cloudmarkt zu bekommen. Wenn also der Absatz von Servern schon unvermeidbar sinkt, so die Logik, dann sollen bitte möglichst viele der verkauften Einheiten das Logo von Dell tragen – und da kommt Open Stack ins Spiel.

Um Dell im Cloudumfeld zu positionieren, hat sich die Firma früh als vehementer Open-Stack-Unterstützer etabliert und will sich ein “wolkiges” und “Cloud-affines” Image geben. Dell kokettiert sogar mit der Einführung einer eigenen Public Cloud. Um die Server einer Wolke möglichst leicht administrieren zu können, reichen herkömmliche Tools wie Puppet und Chef eben nicht aus. Während die sich nur darum kümmern, Konfigurationsdateien synchron auf den Servern zu verteilen, wünschen sich Cloud-Admins mehr Funktionen: Unter der Prämisse, dass das Setup jedes Computing-Knotens identisch ist, sollten sich auch die Nodes automatisch installieren lassen und per Knopfdruck zur Verfügung stehen – ein Feature, das Admins vor allem in der Anfangszeit von Open Stack [2] schmerzlich vermissten.

Die Entwickler konzentrierten sich jedoch auf Basisfunktionen, die Dokumentation war unbrauchbar, das Einrichten einer Open-Stack-basierten Umgebung zumindest bis Open Stack 2011.2 (Diablo) eine nervenaufreibende Sache. Die aktuelle Version 2012.2 (Folsom) kommt zwar mit besserer Dokumentation und weniger Bugs, doch auch hier kostet das Setup eines Cloudcontrollers oder eines Computing-Node viel Zeit.

Dell entwickelte das Produkt von Anfang an in der festen Absicht, Admins von Open-Stack-Umgebungen möglichst viele Arbeitsschritte abzunehmen. Freilich musste zu einer solchen Lösung ein Werkzeug gehören, das Konfigurationsdateien verwaltet. Dell entschied sich dafür, diese Aufgabe Chef [3] von Opscode anzuvertrauen. Chef (Abbildung 1) ist im US-Markt mit großem Abstand der bekannteste Konfigurationsmanager, etwa vergleichbar mit Puppet [4] hierzulande. Damit sich neue Server automatisch in Computing-Knoten für die Cloud verwandeln, mussten die Dell-Programmierer sich auch um das Betriebssystem kümmern. Crowbar hat deshalb einen Installer mit an Bord, der – einmal über PXE gebootet – die gesamte Betriebssystem-Installation automatisch abwickelt.

Abbildung 1: Crowbar enthält eine modifizierte Version von Chef, die sich um das Management von Konfigurationsdateien kümmert.

Abbildung 1: Crowbar enthält eine modifizierte Version von Chef, die sich um das Management von Konfigurationsdateien kümmert.

Crowbar mit Sledgehammer

Wer das Tool ausprobieren möchte, muss zunächst selbst Hand anlegen. Die Crowbar-Entwickler gehen davon aus, dass der Admin den Hauptknoten von einer separaten CD aus installiert, die zusätzlich zum Betriebssystem auf diesem auch die für Crowbar benötigten Dienste auf die Platte bringt (Abbildung 2). Die passende CD muss der Admin aber erst aus den Crowbar-Quellen bauen. Eine Anleitung auf der Crowbar-Homepage gibt Hinweise dazu.

Abbildung 2: Nach der Installation des Crowbar-Servers erscheint dieser als erster Eintrag im »Node Dashboard« des Crowbar-GUI.

Abbildung 2: Nach der Installation des Crowbar-Servers erscheint dieser als erster Eintrag im »Node Dashboard« des Crowbar-GUI.

Die gute Nachricht: Die Entwickler von Crowbar legen Wert darauf, dass das Programm nicht nur eine, sondern alle gängigen Enterprise-Distributionen unterstützt. Entsprechend hat der Admin die Wahl zwischen Cent OS, RHEL, Suse und Ubuntu 12.04 LTS. Wer für erste Crowbar-Tests lieber auf ein fertiges ISO zurückgreifen möchte, findet ein als Beta markiertes Image unter [5].

Das Installations-ISO von Crowbar enthält übrigens mehr als bloße Tweaks für die Routinen der unterstützten Distributionen. Neben der automatischen Installation umfasst es auch Sledgehammer (Vorschlaghammer), ein kleines Linux-System, das sich auf Computing-Knoten, die Crowbar verwalten soll, kurzzeitig einnistet und dort neben einer umfassenden Hardware-Erkennung auch einen Wartungsmodus bietet.

Hier zeigt sich, dass Crowbar von Dell kommt und wie weit die Funktionen von Crowbar tatsächlich reichen: Auf Dell-Hardware ist es sogar möglich, über das Sledgehammer-Tool Bios-Updates durchzuführen. Nebenbei erklärt sich so auch, wieso der Vorschlaghammer auf Cent OS basiert: Nur für das freie Red-Hat-Pendant stehen die Dell-Update-Tools als fertige Pakete zur Verfügung.

Schnell fertig

Die Installation aus einem solchen Basis-ISO heraus funktioniert im Falle von Ubuntu 12.04 praktisch vollautomatisch, weil die Entwickler mit Hilfe von Preseeding alle wichtigen Fragen bereits im Voraus beantwortet haben. Ist die Systeminstallation geglückt, landet der Anwender in einem nackten Linux-System, in dem er die eigentliche Crowbar-Installation per Skript-Aufruf anstoßen muss. Auch hier erledigt eine Setup-Routine das Gros der Arbeit und meldet sich erst wieder beim Admin, wenn alle wichtigen Komponenten den Weg auf die Platte gefunden haben. Im Anschluss steht bereits das Web-GUI von Crowbar zur Verfügung.

Und nicht nur das: Der Master-Server, der sich mittels Crowbar-ISO auf die Platte eines Servers bringen lässt, umfasst neben einer kompletten Chef-Installation auch TFTP- und PXE-Server, ein komplettes Nagios 3 (Abbildung  3) sowie die Statistiksoftware Ganglia (Abbildung  4). Die Dienste sind miteinander verbunden: Kommt beispielsweise ein neuer Knoten hinzu, erkennt Crowbar das automatisch. Es installiert mittels TFTP und DHCP das gewünschte Betriebssystem und legt den neuen Knoten auch in Nagios an.

Abbildung 3: Auch Nagios 3 gehört zum Installationsumfang von Crowbar und erledigt das Monitoring in der Open Stack-Wolke.

Abbildung 3: Auch Nagios 3 gehört zum Installationsumfang von Crowbar und erledigt das Monitoring in der Open Stack-Wolke.

Abbildung 4: Ganglia fertigt Statistiken über einzelne Knoten innerhalb der Wolke an, das Tool ist in Crowbar enthalten.

Abbildung 4: Ganglia fertigt Statistiken über einzelne Knoten innerhalb der Wolke an, das Tool ist in Crowbar enthalten.

Bisher geht das allerdings nur in homogenen Umgebungen. Läuft der Crowbar-Server auf Ubuntu 12.04, so installiert Crowbar nur Clients mit diesem Betriebssystem. Positiv: Crowbar hinterlegt alle Pakete für eine solche neue Ubuntu-Installation auf dem Master-Server, sodass der Admin diese nicht für jeden Knoten neu aus dem Netz laden muss.

Crowbar verwalten

Alle wichtigen Funktionen für Crowbar sind direkt über dessen komfortables Webinterface per Mausklick zu erreichen. Soll ein Rechner eine neue Funktion erhalten, so ist das Crowbar-GUI dafür ebenso die richtige Anlaufstelle (Abbildung 5). Das gilt auch in Fällen, in denen der Admin einem Knoten ein frisches Betriebssystem verpasst. Auch Rechner-Reboots sind von hier aus möglich – vorausgesetzt dass das IPMI auf dem betroffenen Knoten korrekt eingerichtet ist. Was auf den ersten Blick etwas seltsam anmutet, ist die Farbgebung des Interface, die leider keine Option für hellere Farben und damit bessere Lesbarkeit bietet.

Abbildung 5: Im Crowbar-GUI lassen sich Servern per Drag&Drop Funktionen zuweisen. In diesem Falle wird der Knoten zu einem MySQL-Server.

Abbildung 5: Im Crowbar-GUI lassen sich Servern per Drag&Drop Funktionen zuweisen. In diesem Falle wird der Knoten zu einem MySQL-Server.

Wie bereits erwähnt bieten sich dem Admin viele Möglichkeiten, auf die Konfiguration der verschiedenen Crowbar-Dienste Einfluss zu nehmen. Vielleicht ist das noch einer der größten Schwachpunkte, die Crowbar derzeit hat: Statt des einen universellen GUI müssen Admins zwischen den Frontends für Chef, Ganglia, Nagios und so weiter hin und her springen. Das bedarf einiger Gewöhnung und ist leicht nervig. Abhilfe ist nicht in Sicht, denn die Arbeit, die notwendig wäre, um alle Dienste unter einer einheitlichen Oberfläche zusammenzufassen, steht in keinem Verhältnis zum tatsächlichen Nutzen – so ungern manche Admins das auch hören.

Kräftige Helfer: Barclamps

Barclamps (Schraubzwingen) heißen die Skripte, die Crowbar um neue Funktionen erweitern (Abbildung 6), vergleichbar mit den Charms für Juju. Einmal auf dem Server aktiviert lässt sich ein Barclamp auf alle vorhandenen Knoten anwenden. Ab Werk kommt Crowbar mit eigenen Barclamps, die Funktionen für Crowbar selbst, aber auch für Chef, Nagios & Co. enthalten. Eine ausführliche Anleitung zum Verfassen eigener Barclamps findet sich samt Video im Netz [6].

Abbildung 6: Barclamps sind Skripte, die Crowbar um Funktionen erweitern, hier für Open Stack.

Abbildung 6: Barclamps sind Skripte, die Crowbar um Funktionen erweitern, hier für Open Stack.

Die Barclamps greifen tief in die Funktionen ein, die beispielsweise Chef zur Verfügung stellt. Die mit Crowbar ausgelieferte Version von Chef ist deshalb speziell modifiziert – ein Umstand, den die Entwickler in Crowbar 2.0 zwar beseitigen möchten. Wer aber bereits eine funktionierende Konfigurationsverwaltung auf Basis von Chef oder Puppet hat, sollte sich überlegen, ob der Umstieg auf Crowbar die Mühe wert ist.

Denn Crowbar ist nicht einfach ein Aufsatz für Chef. Vielmehr setzt es Chef gezielt so ein, dass es für einen eng definierten Einsatzbereich überaus nützliche Dienste leistet – in all jenen Szenarien nämlich, in denen es darum geht, viele (fast) identische Systeme zentral zu administrieren und den Pool der verfügbaren Server schnell und leicht zu erweitern. In Cloudumgebungen funktioniert es überaus zuverlässig und nimmt den Administratoren viele der lästigen Alltagsaufgaben ab, wenn neue Systeme zu deployen sind.

Usability und Dokumentation

Über die Benutzerfreundlichkeit von Crowbar lässt sich vortrefflich streiten. Auf den ersten Blick wirkt es schon etwas eigenartig, sich zunächst aus den Quellen des Programms ein eigenes ISO-Image zu bauen, das anschließend als Basis für die Serverinstallation dient. Doch dieses Konzept bringt Vorteile. Denn weil Install-ISOs für Crowbar grundsätzlich an die lokalen Begebenheiten anpassbar sind, erspart diese Vorgehensweise Admins später viel Arbeit bei der unvermeidlichen Anpassung des Standard-Setups an die lokalen Bedingungen. In Crowbar ist das lokale Setup bereits der globale Standard.

Wohltuend ist, dass die Crowbar-Entwickler zumindest in gleicher Qualität für alle drei Enterprise-Distributionen programmieren. Und ist das Image erst gebaut, erhält der Admin nützliche Webinterfaces für Crowbar, Chef, Nagios  3 und Ganglia, die ihm das Deployment neuer Rechner erleichtern und Canonicals Landscape oder MaaS (siehe Kasten “Crowbar oder MaaS?”) in nur wenigen Features nachstehen.

Crowbar oder MaaS?

Neben Crowbar gibt es derzeit nur eine weitere Open-Source-Software, deren Funktionsumfang vergleichbar ist: Ubuntus MaaS ([7], Abbildung 7). MaaS steht für “Metal as a Service” und will Administratoren in die Lage versetzen, per Mausklick einem Server eine spezifische Aufgabe zuzuweisen.

Abbildung 7: MaaS (Metal as a Service) heißt Canonicals Alternative zu Crowbar.

Abbildung 7: MaaS (Metal as a Service) heißt Canonicals Alternative zu Crowbar.

Ubuntu only

Wie Crowbar wickelt auch MaaS die Installation eines neuen Host über ein CD-Image ab. Die MaaS-Installation ist aber unmittelbarer Teil von Ubuntus Server-Installations-CD. Das macht MaaS aber auch deutlich weniger flexibel im Hinblick auf die genutzte Distribution – wer es nicht mit Ubuntu verwenden möchte, hat viel Handarbeit vor sich.

MaaS versteht sich als Software, die die Konfigurationen neuer Systeme aus der Wolke auf echte Hardware überträgt. Admins haben beispielsweise die Option, im Webinterface einen »Datenbankserver mit mindestens 16 Gigabyte RAM« anzufordern, und MaaS macht im lokalen Rechnerpark eine passende Maschine ausfindig und konfiguriert sie entsprechend. Damit die Ubuntu-Entwickler das Rad nicht neu erfinden müssen, setzt MaaS auf die bewährte Technik von Juju, um gewählte Softwarekollektionen schnell zu installieren.

Jünger als Crowbar

Auch MaaS ist also grundsätzlich ein Framework, das zum Konfigurationsmanagement um eine bereits existierende Software herum gebaut und mit der Option ausgestattet ist, dedizierte Hardware mit entsprechenden Aufgaben zu versehen. Allerdings ist MaaS jünger als Crowbar, und anders als die Dell-Entwickler achten die von MaaS im Augenblick offenbar weniger auf Kontinuität. Die Version, die Bestandteil von Ubuntu 12.10 ist, hat einige Veränderungen im Vergleich zu der in 12.04 erfahren und lässt sich nicht mit einer Installationsanleitung für 12.04 einbauen. Im Ubuntu-Wiki [8] findet sich jedoch auch eine Anleitung für 12.10 und die späteren Versionen. An dieser Stelle wird deutlich, dass Ubuntus Cloudteam aktiv an MaaS arbeitet: Die Dokumentation ist jedenfalls deutlich besser organisiert als die von Crowbar und häufig auch aktueller.

Juju und Landscape-Support

Wer also eine Wolke auf Grundlage von Ubuntu 12.04 einsetzt, sollte auch einen Blick auf MaaS werfen und die Entscheidung davon abhängig machen, ob Chef oder Juju den persönlichen Geschmack treffen. Ubuntus Supportprogramm mit Landscape verlangt allerdings MaaS. Wer eine Wolke mit Red Hat oder Suse bauen möchte, wird eher bei Crowbar landen.

Also alles perfekt im Crowbar-Land? Nein. Die Dokumentation des Tools lässt zu wünschen übrig. Ein großer Teil ist direkt über das Wiki zu erreichen, das zum Crowbar-Github [9] gehört. Die dort erklärten Schritte funktionieren zwar unverändert bis heute, doch wird aus keinem der Texte deutlich, dass Crowbar beispielsweise auch mit Ubuntu 12.04 klaglos zurechtkommt – die Rede ist stets nur von Ubuntu 10.10.

Viele Erklärungen zu Crowbar finden sich überdies nur im persönlichen Blog von Rob Hirschfeld, einem der Crowbar-Entwickler [10]. Ebenfalls als hilfreich erweisen sich die verschiedenen Crowbar-Videos [11].

Vereinfacht dargestellt

Doch Lösungen wie Crowbar haben auch ihre Tücken: Zwar ist es mit Crowbar problemlos möglich, eine komplette Open-Stack-Umgebung per Klick aus dem Boden zu stampfen. Das entlässt den Cloud-Admin allerdings nicht aus der Verantwortung, den Umgang mit den einzelnen Open-Stack-Teilen trotzdem zu beherrschen. Im Falle eines Problems stößt er schnell an die Grenzen von Crowbar, und dann ist trotzdem wieder profundes Admin-Wissen gefragt, um die Kohle aus dem Feuer zu holen.

Wer Crowbar aber als nützliches Add-on zu Open Stack versteht, der vermeidet mit der Umgebung viel lästige und wiederkehrende Arbeit. Als Ersatz für eigenes Open Stack-Wissen taugt das Deployment-Tool aber keinesfalls.

Derzeit arbeitet das Crowbar-Team an Crowbar 2.0, das in vielen Teilen ein komplettes Rewrite durchlaufen wird. Beim Open Stack Summit in San Diego im Oktober diskutierten die Entwickler mit der Community und holten sich Ideen dafür, wie Crowbar Dinge besser tun könnte als bisher.

Beispielsweise stört die angesprochene Notwendigkeit einer gepatchten Chef-Version, auch die Verwaltung von Umgebungen mit unterschiedlichen Betriebssystemen möchten die Entwickler erweitern. Eine Liste aktueller Designziele für Crowbar 2.0 findet sich auf der Wiki-Seite unter [12].

Infos

  1. Crowbar: https://github.com/dellcloudedge/crowbar/
  2. Stefan Seyfried, Christian Berendt, “Cactus im Anmarsch”: Linux-Magazin 05/11, S. 72
  3. Tim Schürmann, “Chefkoch”: Admin-Magazin 04/10, S. 82
  4. Gunnar Robel, “Puppenspiel”: Linux-Magazin 10/08, S. 70
  5. Beta-ISOs für Crowbar: http://crowbar.zehicle.com
  6. Anleitung für eigene Barclamps: http://robhirschfeld.com/2011/09/19/create-a-crowbar-barclamp/
  7. Ubuntu MaaS: http://www.ubuntu.com/cloud/orchestration/deployment
  8. MaaS-Installation, Ubuntu 12.04: https://wiki.ubuntu.com/ServerTeam/MAAS, Ubuntu 12:10: https://maas.ubuntu.com/docs/
  9. Crowbar-Wiki: https://github.com/dellcloudedge/crowbar/wiki
  10. Blog von Crowbar-Entwickler Rob Hirschfeld: http://robhirschfeld.com/crowbar/
  11. Crowbar-Trainings-Videos: https://github.com/dellcloudedge/crowbar/wiki/Videos
  12. Ausblick auf Crowbar 2.0: https://github.com/dellcloudedge/crowbar/wiki/Crowbar-2.0

Der Autor

Martin Gerhard Loschwitz arbeitet als Principal Consultant bei Hastexo. Er beschäftigt sich dort intensiv mit Hochverfügbarkeitslösungen, Cloud und Clustern und pflegt in seiner Freizeit den Linux-Cluster-Stack für Debian GNU/Linux.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben