denisismagilov - stock.adobe.com

Tools zum Verwalten von Konfigurationsdaten im Überblick

Konfigurationsmanagement-Tools entlasten die IT. Verwenden Sie außerdem DevOps-Praktiken im Unternehmen, sollten Sie dies bei der Tool-Evaluierung berücksichtigen.

Veränderung ist ein wesentlicher Bestandteil der IT – erfolgreiche Unternehmen sind stets in Bewegung. Aber Veränderung kann auch disruptiv sein. Arbeiten an einem Asset bringen manchmal andere Ressourcen völlig unerwartet aus dem Gleichgewicht. Das kann zu schlechter Leistung, Inkonsistenzen in Anwendungen oder Verstößen gegen Vorschriften führen.

Um diese Probleme zu vermeiden, stellen Konfigurationsmanagement-Tools (Configuration Management, CM) Dokumentation, konsistente Wartung und Änderungssteuerung zur Verfügung. Diese Funktionen helfen einer Organisation nicht nur dabei, ihre IT-Assets zu identifizieren, sondern auch die Beziehungen zwischen diesen besser zu verstehen.

Was sind Konfigurationsmanagement-Tools und wofür sind sie gut?

Die Automatisierung mit Konfigurationsmanagement-Tools ermöglicht es Systemadministratoren, Prüfungen und Redundanzen einzurichten, um Assets in einem gewünschten Zustand zu halten. Dieser höhere Automatisierungsgrad verbessert die Effizienz und hilft, Probleme zu vermeiden, die durch menschliche Fehler und manuelle Serverkonfigurationen entstehen. Diese Vorteile sind besonders attraktiv für DevOps-Teams und überall dort, wo mehrere Personen für Konfigurationen zuständig sind.

Konfigurationsmanagement kann die Produktivität steigern, die IT-Kosten senken und dazu beitragen, die kontinuierliche Bereitstellung (Continuous Delivery, CD) von IT-Diensten zu gewährleisten. Üblicherweise sind CM-Agenten auf mehreren Servern im Netzwerk installiert und nehmen Befehle vom Master-Server entgegen. Ein Administrator sendet eine Konfigurationsdatei an den Master-Server, um bestimmte Aktionen auf mehreren Zielhosts auszuführen – egal ob On-Premises, in der Cloud oder in einer hybriden Umgebung.

Im Folgenden stellen wir die wichtigsten Konfigurationsmanagement-Tools vor, bewerten ihre Funktionen, besonders hinsichtlich ihrer Eignung für DevOps und erklären die Unterschiede. Alle dieser Tools bieten Versionen für Linux, Unix, Windows und macOS an.

Ansible

Ansible ist ideal für kleine DevOps-Teams, die ein schnelles und leichtgewichtiges Konfigurationsmanagement-Tool benötigen. Mit Ansible können sie unternehmensweit Systeme automatisieren und einzelne Shell-Befehle an ganze Bündel von Diensten senden sowie ihre Umgebungen flexibel organisieren.

Neben der Nutzung von Ansible Galaxy für Rollen-Frameworks und Playbooks können Systemadministratoren Module für verschiedene Aufgaben bereitstellen, von dynamischen AWS-Integrationen und Containerorchestrierung bis hin zu einfachen Konfigurationsdateien. Ansible-Nutzer müssen große Mengen an prozeduralem Code schreiben; dafür sind Python-Kenntnisse von Vorteil.

Chef

Chef, entweder On-Premises oder in der Cloud gehostet, ist ein nützliches DevOps-Tool, mit dem sich Geschwindigkeit, Skalierung und Konsistenz verbessern lassen. Das Tool erfordert, dass die IT-Abteilung einen Master-Server für das Speichern des Infrastrukturstatus betreibt und dann Agentensoftware für die Konfiguration der Server einsetzt.

Eine Open-Source-Version von Chef bietet ein eigenständiges Konfigurationsformat namens Chef Solo. Die integrierte Suite von Chef-Tools ermöglicht es IT-Teams, Konfigurationen in der Cloud, On-Premises oder in hybriden Umgebungen zu verwalten. In Chef erstellen IT-Teams sogenannte Rezepte (vergleichbar mit den Playbooks in Ansible) in der Open-Source-Programmiersprache Ruby.

Der Chef Enterprise Automation Stack bildet die kommerzielle Distribution und ermöglicht eine einheitliche Sicherheits-, Compliance-, Infrastruktur- und Anwendungsautomatisierung mit Überwachungsfunktionen. Progress Software hat Chef im Jahr 2020 erworben und bietet auch Kombinationen von Chef-Komponenten (Habitat, Infra, Automate) unter dem Namen Infrastructure Management and App Delivery an.

CFEngine

CFEngine ist ein weit verbreitetes und etabliertes Open-Source-Konfigurationsmanagement-Tool, das die Promise-Theorie zur Umsetzung von Konfigurationen nutzt. Es verlässt sich auf die freiwillige Kooperation von leichtgewichtigen Agenten auf den verwalteten Ressourcen.

CFEngine verwendet die Sprache C und arbeitet aufgrund des geringen Speicherbedarfs schneller sowie mit weniger Abhängigkeiten als die meisten anderen Tools. Die Konfiguration mag zwar auf den ersten Blick verwirrend sein, doch dafür bietet die enthusiastische Community des Tools Unterstützung und Anleitung.

Consul

Consul bietet ein unkompliziertes Verwaltungsprodukt für das Speichern von und Zugreifen auf Konfigurationen. Es stellt zudem HTTP- und DNS-APIs für das Aufspüren von Diensten zur Verfügung. Consul ist vergleichsweise einfach zu implementieren und nutzen. Es ist in Go geschrieben und als native Binärdatei verfügbar, dadurch eignet es sich auch für den Einsatz in großen, verteilten Systemen. Auf Grundlage der dynamischen Service-Discovery-Funktion bietet Consul Health Checking, Key/Value-Stores und Unterstützung für die Wartung mehrerer Rechenzentren.

Puppet

Das modellgesteuerte System von Puppet und seine Anknüpfung an die Sprache Ruby vereinfachen den Einrichtungsprozess und die Nutzung. Mit Puppet können DevOps-Teams von Aufgaben von der Installation von Paketen bis zur automatischen Aktualisierung von Konfigurationen automatisieren.

Puppet benötigt einen Master-Server für das Speichern von Zustandsinformationen. Es setzt auf einfach zu bedienende Module und versendet Aktualisierungen über das Push-Modell. Die Open-Source-Edition von Puppet ist kostenlos. Demgegenüber ist Puppet Enterprise ab zehn Nodes kostenpflichtig und lässt sich besser in die wichtigsten DevOps-Tools integrieren.

Rudder

Rudder ist ein Derivat von CFEngine und bietet eine Benutzeroberfläche, die speziell für Einsteiger in die Konfigurationsverwaltung geeignet ist. Während das Web-Frontend mit der Sprache Scala erstellt wurde, sind die lokalen Agenten in C geschrieben. Es implementiert die Funktion Desired State Configuration, durch die Nutzer mit PowerShell-Skripten Konfigurationsparameter von Windows-basierten Servern spezifizieren können. Dieses Open-Source-CM-Tool setzt leichte lokale Agenten ein und identifiziert Knotenmerkmale, um die Systemkonfiguration weiter zu vereinfachen.

SaltStack

SaltStack bietet sowohl Master- als auch Masterless-Konfigurationsansätze und setzt eine schnelle, ereignisgesteuerte Automatisierung mit ZeroMQ als brokerlose, asynchrone Messaging-Bibliothek um. Es wurde für die Datenerfassung in Hochgeschwindigkeit entwickelt und ist mit den wichtigsten Cloud-Anbietern kompatibel, die den Infrastructure-as-Code-Ansatz (IaC) unterstützen. Die Funktionen von Saltstack sind für Umgebungen konzipiert, die auf Cloud Computing, Virtualisierung und Containerisierung setzen – alles Schlüsseltechnologien des DevOps-Ansatzes. VMware hat die Übernahme von SaltStack Ende 2020 angekündigt und das Werkzeug in die vRealize Automation Suite integriert.

Terraform

Als Konfigurationsmanagement-Tool, das auf die Bereitstellung ausgerichtet ist, lässt Terraform IT-Teams APIs kodifizieren und erleichtert damit deren Bearbeitung sowie die Versionierung gemeinsamer Konfigurationen.

Ein Unternehmen, das auf Container und Images Virtueller Maschinen setzt, wird Terraform besonders nützlich finden. Das Tool verwendet einen unveränderlichen Konfigurationsansatz, um ein Abdriften zu verhindern und die Server auf einem gewünschten Stand zu halten.

Für die Überwachung von Cloud-basierten Konfigurationen verlässt sich Terraform auf die APIs des Cloud-Anbieters; Administratoren können einfach API-Schlüssel zur Authentifizierung verwenden. Ein kürzlich vorgestelltes Dienstprogramm verbindet Consul und Terraform noch enger miteinander.

Erfahren Sie mehr über Data-Center-Infrastruktur