Automatisierung für Administratoren mit Open Source Tools
Open Source Tools sind eine beliebte Wahl für die Rechenzentrums-Automatisierung. Wir erklären die Funktionen und Unterschiede von Puppet, Capistrano, Chef, Ansible und Saltstack.
Unternehmen setzen Automatisierungs-Tools wie Puppet, Capistrano, Chef, Ansible oder Saltstack vor allem in Rechenzentren mit einer Hybrid-Cloud-Architektur und Containern ein. Durch die Automatisierung können Administratoren und Entwickler Dienste und Ressourcen schneller, standardisiert und sicher bereitstellen. Auch in DevOps-Umgebungen bieten Automatisierungs-Tools einen großen Vorteil, da sie direkt in die Bereitstellungspipeline mit einbezogen werden können.
Tools wie Puppet oder Ansible lassen sich in vielen Fällen auch über Plug-ins in Systeme integrieren, die Admins in ihrem Rechenzentrum schon zur Verwaltung nutzen. Ein Beispiel dafür ist openQRM. Die Lösung kann in heterogenen Umgebungen Hybrid-Cloud-Infrastrukturen verwalten und mit Ansible oder Puppet automatisieren.
In diesem Artikel haben wir vier beliebte Open Source Tools, Ansible, Puppet, Chef und Saltstack, herausgepickt und vergleichen deren Funktionen und Möglichkeiten.
Automatisierung mit Ansible – Hybride Clouds und Containeranwender bereitstellen
Ansible ist ein starkes Automatisierungs-Tool auf Python-Basis und arbeitet optimal in Containerumgebungen. Zusammen mit Docker Swarm kann Ansible Container-Apps automatisch bereitstellen. Ansible verwendet dafür YAML (YAML Ain’t Markup Language).
Das schließt einen deklarativen Ansatz aus, wie ihn zum Beispiel Chef und Puppet bieten. Administratoren und Entwickler können mit YAML Vorlagen erstellen, die sie auch mit Docker nutzen können. Das ermöglicht eine einheitliche Bereitstellung von Containern mit Docker und Ansible im Zusammenspiel. Ansible arbeitet mit Playbooks. Sie steuern die automatisierte Konfigurationen mit YAML und sind hierarchisch strukturiert: ein Playbook besteht aus einzelnen Plays, die wiederum Tasks enthalten, die auf den Computern laufen.
Ein großer Vorteil von Ansible ist, dass es bereits viele fertige Playbooks gibt, die zum Download bereitstehen.
Zu den weiteren Vorzügen von Ansible gehören die Funktionen für Object Storage. Dieser liegt vor allem für große Netzwerke immer mehr im Trend. Mit OpenIO können Anwender Speicher auch für Analysezwecke bereitstellen, zum Beispiel für Hadoop oder Spark. Auch das lässt sich mit Ansible automatisieren.
Weil Ansible so weit verbreitet ist, haben viele Anbieter von Geschäftsanwendungen Anknüpfpunkte geschaffen. So lassen sich beispielsweise SAP-Lösungen mit Microsoft Azure in der Cloud bereitstellen. Microsoft stellt dazu auch Ansible-Playbooks zur Verfügung, mit denen Administratoren die Installation und Konfiguration von SAP in der Cloud automatisieren können. Wer im Rechenzentrum auf Ansible setzt, kann hier also nahtlos Konfigurationen in die Cloud übernehmen.
Anwendungen automatisiert mit Capistrano verteilen
Capistrano ist ein weiteres bekanntes Tool zum Automatisieren von Rechenzentren. Im Fokus von Capistrano steht vor allem das Verteilen von Anwendungen. Capistrano basiert auf der Programmiersprache Ruby. Geht es um das Verteilen von Webanwendungen, kann Capistrano eine wertvolle Hilfe sein und auch bei der Automatisierung von Containerumgebungen macht es sich gut. Außerdem eignet sich Capistrano für die Verwendung mit Gem. Zum Beispiel installiert man Capistrano auf einem Linux-Server mit dem Befehl sudo gem install capistrano. Capistrano unterstützt also gem, das Packaging-System von Ruby.
Capistrano ist besonders für Nutzer geeignet, die Aufgaben nicht vollständig automatisieren wollen, sondern eine Teilautomatisierung anstreben. Sie können dazu bestimmte Vorgänge aktivieren und mit Capistrano einen Standardbereitstellungsprozess nutzen. Capistrano übernimmt die Strukturierung von Skripten anschließend automatisch. Zusätzlich findet man in der Capistrano-Community viele Vorlagen für die Automatisierung.
Automatisierung mit Puppet und Chef – Serverfarmen bereitstellen
Puppet gehört im DevOps-Bereich für die automatisierte Konfiguration und Continous Delivery (kontinuierliche Auslieferung, CD) zu den bekanntesten Tools. Chef wird in diesem Bereich ebenfalls häufig eingesetzt.
Puppet positioniert sich als Lösung für große Unternehmen und Netzwerke. Es kann komplette Rechenzentren automatisieren und dabei eine große Anzahl an virtuellen Servern bereitstellen. Puppet funktioniert auch in kleineren Netzwerken und die Stärken bei der Skalierbarkeit machen die Lösung zu einer guten Wahl für Unternehmen, die ein starkes Wachstum ihres Netzwerks erwarten. Puppet arbeitet im Gegensatz zu Ansible deklarativ. Administratoren geben den angestrebten Zustand von Hard- und Software an und Puppet stellt diesen für sie her. Puppet ist flexibler als Ansible, dafür aber auch wesentlich komplexer im Umgang.
Puppet kann auch Abhängigkeiten zwischen Ressourcen berücksichtigen. Nutzer können auf diesem Weg zum Beispiel festlegen, dass ein Systemdienst automatisch mit einem abhängigen Dienst startet.
Chef ist die wichtigste Alternative zu Puppet und eignet sich ebenfalls für die Automatisierung in großen Rechenzentren. Auch Chef arbeitet deklarativ. Bei Chef gliedern sich Automatisierungsskripte in Rezepte (Recipes), die in Kochbüchern (Cookbooks) zusammengefasst werden.
Mit AWS können Unternehmen einen Chef Automate Server direkt in der Cloud buchen. Ein Bestandteil von Chef, der für viele Kunden interessant ist, ist das Tool InSpec. Diese Erweiterung kann für sie regelmäßig Compliance-Analysen durchführen.
Unix und Linux mit Saltstack automatisieren
Saltstack wurde im Herbst 2020 von VMware übernommen. Es bietet für Nutzer von Unix und Linux einige Vorteile. Das Tool funktioniert zwar auch mit Windows-Clients im Netzwerk, die Hosts für Saltstack müssen jedoch Linux oder Unix einsetzen. Mit Saltstack können Virtuelle Maschinen (VMs) und Virtualisierungs-Hosts automatisiert konfiguriert werden, zum Beispiel ESXi-Hosts in VMware vSphere-Umgebungen.
Neben der kostenlosen Community Edition ohne grafische Benutzeroberfläche (GUI), Salt, stellen die Entwickler auch eine kostenpflichtige Enterprise-Version mit besserem Support zur Verfügung. Wer im Unternehmen bereits mit Python arbeitet, hat beim Einsatz von Saltstack oder Ansible natürlich einige Vorteile. Puppet und Chef hingegen bauen auf Ruby auf, so dass Admins, die damit Erfahrung haben, mit diesen Tools leichter starten können.