Definition

Ansible

Ansible ist eine Open-Source-Plattform für IT-Konfigurationsmanagement (Configuration Management, CM) und Automatisierung, die von Red Hat vertrieben wird. Sie verwendet menschenlesbare YAML-Vorlagen, so dass Benutzer sich wiederholende Aufgaben so programmieren können, dass sie automatisch ablaufen, ohne eine fortgeschrittene Sprache lernen zu müssen.

Ansible ersetzt Ad-hoc-Skripting oder manuelles Konfigurationsmanagement durch einen automatisierten und wiederholbaren Prozess. Das Tool schiebt Anwendungscode, Programme und Anweisungen zur Einrichtung der IT-Infrastruktur über Module an verwaltete Knoten, seien es physische Server, virtuelle Maschinen (VMs) oder Cloud-Instanzen. Das Tool bietet den Benutzern auch die Möglichkeit, es in eine Pull-Architektur umzuwandeln, bei der verwaltete Knoten Anweisungen vom Tool anfordern. Das ermöglicht eine Skalierung.

Mögliche Komponenten

Ein Ansible-Benutzer richtet Anweisungen als Befehle ein oder verpackt sie in wiederverwendbare Plays, die in sogenannten Playbooks ausgeführt werden. Ansible erfüllt außerdem die Funktion als Orchestrator, wobei es Nutzern die Möglichkeit gibt eine Reihenfolge festzulegen, in der automatisierte Schritte ausgeführt werden.

Ansible ist agentenlos. Das bedeutet, dass es keine Software auf den von ihm verwalteten Knoten installiert. Dadurch werden potenzielle Fehlerquellen und Sicherheitslücken beseitigt und gleichzeitig Systemressourcen eingespart.

Das CM-Tool lässt sich in andere Systemverwaltungs- und Hosting-Technologien integrieren, darunter Asset-Bibliotheken, Überwachungs- und Collaboration-Software sowie Cloud- und Virtualisierungsplattformen. Ansible kann Windows-Systeme über Windows Remote Management (WinRM) steuern. Der Kontrollknoten von Ansible muss mit Linux mit einer aktuellen Version von Python ausgestattet sein.

Eine Einführung in Ansible

Der IT-Experte Stuart Burns erklärt die Grundlagen von Ansible

Als Teil von Red Hat wird Ansible auf verschiedene Weise verwendet, um die Integration und den Betrieb anderer Red-Hat-Produkte, wie OpenShift und Red Hat Enterprise Linux (RHEL), zu verbessern. Beispielsweise kann ein OpenShift-Benutzer eine externe Datenbank über den OpenShift Ansible Broker (OAB) mit einer von OpenShift gehosteten, dreistufigen Webanwendung verbinden. Darüber hinaus bieten Ansible Rollen und Playbooks eine konsistente Möglichkeit, Red Hat-Produkte versionsübergreifend zu verwalten.

Ansible ist über apt, Extra Packages for Enterprise Linux (EPEL), Fedora und von Red Hat über das Content Delivery Network (CDN) oder Ansible.com erhältlich.

Ansible Engine und Tower

Ansible ist Teil der Systemmanagement-Produktgruppe für Unternehmens-IT von Red Hat. Diese Gruppe umfasst das Infrastrukturmanagement Satellite, das CloudForms-Cloud-Management und den Überwachungs- und Fehlerbehebungsdienst Red Hat Insights.

Ansible Engine von Red Hat bietet Enterprise-Level-Support für das Open-Source-Projekt. Es ist eine stabilisierte, gehärtete Version der vorgelagerten Automatisierungstechnologien. Ansible Engine umfasst den zentralen Task Runner und Module für Kernfunktionen, Networking, Community und andere Bereiche. Sie wird über eine Kommandozeile gesteuert, die Benutzern der Linux-CLI bekannt sein wird. Der Benutzer benötigt Zugriff auf alle erforderlichen Zugangsdaten. Sie folgt demselben Red-Hat-Subskriptionsmodell, das auch für die anderen Open-Source-Angebote verwendet wird, einschließlich Sicherheits- und Wartungs-Updates und einem Service Level Agreement (SLA) für die Problembehebung. Ansible Engine ist mit zwei Stufen des globalen Supports erhältlich. Engine wird jährlich pro Knoten lizenziert, auf einer 100-, 5.0000- und 10.000-Knoten-Basis.

Ansicht in Ansible Engines
Abbildung 1: Der Nutzer nimmt Einstellungen für Ansible Engines mit der CLI vor.

Ansible Tower bietet eine Reihe von Funktionen für die Verwaltung und Zugriffskontrolle, welche die Möglichkeiten von Ansible Engine erweitern. Tower ist ein unterstütztes Red-Hat-Angebot, das auf dem vorgelagerten AWX-Projekt basiert. Dank der rollenbasierten Zugriffskontrolle (Role Based Access Control, RBAC) kann das IT-Betriebsteam die Benutzeranmeldeinformationen für verwaltete Systeme kontrollieren. Ansible Tower umfasst auch anpassbare Dashboards und Bestandsverwaltung über eine grafische Benutzeroberfläche (Graphic User Interface, GUI), ein Benachrichtigungssystem sowie Job Scheduling. Zusätzlich zur GUI verfügt der Tower über eine eigene CLI. Tower-Benutzer können Ansible über seine API in Entwicklungs-, IT- und DevOps-Prozesse und Toolchains einbinden. Instanzgruppen und isolierte Knoten ermöglichen eine genaue Kontrolle über Implementierungen. Die Lizenzen für Tower sind für bis zu 10 Knoten oder für einen Testzeitraum kostenlos. Über diese Optionen hinaus wird Tower pro 100, 5.000 und 10.000 Knoten jährlich lizenziert. Benutzer können für Ansible Engine oder Tower separat bezahlen oder beide zusammen bündeln.

Dashboard in Ansible Tower
Abbildung 2: Ansible Tower bietet Dashboards zur Überwachung von Einstellungen und eine GUI.

Ansible vs. Chef, Puppet und andere Tools

Mehrere Produkte bieten konkurrierende Ansätze für die Infrastrukturautomatisierung, Anwendungsbereitstellung und CM. In einigen Fällen kann auch eine Kombination von Lösungen verschiedener Anbieter sinnvoll sein. Zum Beispiel kann Puppet Konfigurationen ausführen, die Ansible dann orchestriert, oder der Entwickler verwendet Chef und das Betriebsteam Ansible.

Zu den Hauptkonkurrenten von Ansible gehören:

Ansible wurde 2012 von Michael DeHaan entwickelt und 2015 von Red Hat übernommen. Danach entwickelte Red Hat die Engine als kommerzielles Angebot und schuf AWX als Open-Source-Upstream für Tower.

Ansible und Salt verwenden YAML, während Chef JSON verwendet und Ruby sowie Puppet jeweils auf deklarativen domänenspezifischen Sprache beruhen. PowerShell DSC-Benutzer müssen mit der PowerShell-Programmierung vertraut sein. Ansible verwendet einen agentenlosen Ansatz, während die konkurrierenden Angebote von Chef, Puppet, Salt und PowerShell DSC-Agenten installieren, obwohl bestimmte agentenlose Konfigurationen möglich sind.

CM-Tools, einschließlich Ansible, konkurrieren auch mit Docker und anderen Orchestrierungstechnologien, um Workloads in Containern zu verwalten. Ein Ansible-Benutzer kann einen Container erstellen und die Nutzlast des Containers definieren. Ansible Container ist ein Open-Source-Projekt, das Container baut, einsetzt und verwaltet. Es gibt zwar auch Überschneidungen mit kontinuierlichen Integrationstechnologien wie Jenkins, aber Ansible und seine Konkurrenten arbeiten mit diesen Tools zusammen und übernehmen die Bereitstellung, sobald die CI-Pipeline fertigen Code liefert.

Diese Definition wurde zuletzt im Mai 2020 aktualisiert

Erfahren Sie mehr über Serverbetriebssysteme

ComputerWeekly.de
Close