Suchen

Definition „Ansible“ Was ist Ansible?

Autor / Redakteur: chrissikraus / Stephan Augsten

Ansible ist ein Open-Source-Tool, mit dem sich die Konfiguration und Administration von Systemen automatisieren lässt. Das reicht von simplen bis hin zu hoch komplexen Tasks. Das Werkzeug beherrscht Modularisierung und erfordert minimale Systemvoraussetzungen

Firma zum Thema

Ansible automatisiert das Konfigurationsmanagement und die Software-Verteilung, eine grafische Schnittstelle existiert mit Ansible Tower.
Ansible automatisiert das Konfigurationsmanagement und die Software-Verteilung, eine grafische Schnittstelle existiert mit Ansible Tower.
(Bild: Ansible.com)

Konfigurationsmanagement ist ein Bereich, in dem es viele wiederkehrende Aufgaben gibt – perfekt für Automatisierung. Es existieren zahlreiche Lösungen, um das zu erreichen. Doch viele dieser Ansätze sind recht komplex oder erfordern eine umfangreiche Umgebung.

Eine Besonderheit von Ansible ist, dass die Open-Source Software mit minimalen Voraussetzungen arbeiten kann: Die verwaltenden Geräte benötigen lediglich OpenSSH und Python. Dennoch beherrscht das Tool alle wichtigen Techniken, um Konfiguration, Administration und Orchestrierung zu automatisieren.

Gleichzeitig ist es über die relativ simple Sprache YAML bedienbar, was die Einstiegshürde weiter senkt. Ansible wird weltweit von den verschiedensten Firmen und Einrichtungen verwendet, von Rechenzentren bis hin zu Universitäten.

Remote – aber sicher

Eine weitere Besonderheit von Ansible ist, dass bei der Arbeit aus der Ferne kein Agent auf dem Zielsystem installiert werden muss. Bei anderen Konfigurationsmanagern ist häufig eine Agentensoftware nötig, um die gewünschten Tätigkeiten auszuführen. Das kann zu Fehlern oder Sicherheitsproblemen führen. Ansible arbeitet ohne Umwege oder Hilfsmittel und kann diese Bedenken somit im Keim ersticken.

Die Bausteine der Automatisierung mit Ansible

Automatisiertes Konfigurationsmanagement mit Ansible funktioniert, indem der gewünschte Zustand des Hosts oder Systems in einem sogenannten Playbook beschrieben wird. Das können grundlegende Einstellungen sein, aber auch die komplette Einrichtung eines neuen Systems inklusive der Installation bestimmter Software.

Das Tool dient also zum Verwalten von Netzwerken bis hin zum automatisierten Aufsetzen neuer Clients. Bei Bedarf können natürlich auch einzelne Befehle per Kommandozeile abgesetzt werden. Ansible verwendet zum automatisierten Arbeiten drei grundlegende Ressourcen, die in den folgenden Abschnitten näher erklärt werden: Module, Inventar und Playbooks.

Module

Module sind in sich geschlossene Unterprogramme, in die allgemeine, häufig wiederkehrende Aufgaben ausgelagert werden. Sie können von der Konsole aus und in Playbooks verwendet werden. Sie beschleunigen das Erstellen von Playbooks und Anweisungen enorm, da Standardaufgaben nicht ständig neu programmiert werden müssen. Viele Module für alltägliche Aufgaben werden bereits mit Ansible ausgeliefert. Es ist jedoch auch möglich, eigene Module zu programmieren.

Inventar

Im Inventar wird beschrieben, auf welche Knoten per Ansible zugegriffen werden kann. Das Inventar enthält die IP-Adressen oder Namen der verfügbaren Hosts. Die Einträge im Inventar können bei Bedarf gruppiert werden, um die Verwaltung zu erleichtern. Sowohl einzelne Einträge als auch Gruppen können mit Variablen verknüpft werden, um zum Beispiel allen Hosts der Gruppe X einen spezifischen NTP-Server zuzuweisen. Zudem ist es möglich, das Inventar dynamisch aus anderen Quellen zu beziehen sowie mehrere Inventardateien parallel zu verwenden.

Playbooks

Das automatisierte Abarbeiten der Vorgaben erfolgt bei Ansible mittels Playbooks. Sie funktionieren ein wenig wie ein Benutzerhandbuch oder ein Regelwerk, in dem die Schritte der Automatisierung definiert werden. Es handelt sich um Sammlungen einzelner Arbeitsanweisungen (Plays), die für die Konfiguration eines bestimmten Szenarios notwendig sind. Es kann jedes beliebige Shell-Kommando verwendet werden, um gezielt die gewünschten Einstellungen und Installationen auf dem Zielsystem durchzuführen.

Neuere Versionen unterstützen zudem Powershell-Befehle für Windows. Hierfür kommt YAML zum Einsatz. Es handelt sich um eine beschreibende Sprache, mit der man im Fall von Ansible der Software die exakten Parameter der Automatisierung verrät. Die Sprache ist leicht verständlich, was die Arbeit mit Playbooks relativ simpel gestaltet. Für dynamische Szenarien kann mit Variablen gearbeitet werden. Mit einem gut geschriebenen Playbook lässt sich per Ansible sehr sauber und zuverlässig konfigurieren und verwalten.

Ansible vs. Ansible Tower

Die kostenlose Variante von Ansible leidet etwas darunter, dass Kommandozeile und grafische Benutzeroberfläche nicht immer auf dem gleichen Stand sind. Das bedeutet in der Praxis, dass mitunter unterschiedliche Ergebnisse erzielt werden.

Für den professionellen Einsatz bietet die Enterprise-Variante Ansible Tower von Red Hat eine etwas komfortablere Bedienung, da hier beide Eingabemethoden auf demselben Stand gepflegt werden. Zudem gibt es weitere Funktionen wie ein Dashboard, ein Rollensystem für Benutzer, visuell aufbereitetes Inventar-Management sowie einen technischen Support.

Artikelfiles und Artikellinks

(ID:45353290)