Skip to main content

Ansible

Was ist Ansible?

Ansible ist eine Open-Source-Software, die die Bereitstellung von Software, das Konfigurationsmanagement und die Anwendungsbereitstellung automatisiert. Ansible verbindet sich über SSH, Remote PowerShell oder über andere Remote APIs.

Architektur

Wie bei den meisten Konfigurationsmanagements gibt es bei Ansible zwei Servertypen: Steuerung von Maschinen und Knoten. Es gibt eine einzige Steuerungsmaschine, an der die Orchestrierung beginnt. Knoten werden von einer steuernden Maschine über SSH verwaltet. Die steuernde Maschine beschreibt die Position der Knoten durch ihr Inventar.

Um Knoten zu koordinieren, stellt Ansible Module über SSH auf Knoten bereit. Module werden temporär in den Knoten gespeichert und kommunizieren über ein JSON-Protokoll über die Standardausgabe mit der steuernden Maschine. Wenn keine Knoten verwaltet werden, werden auch keine Ressourcen verbraucht, da für Ansible keine Dämonen oder Programme im Hintergrund ausgeführt werden.

Im Gegensatz zu einem gängigen Konfigurationsmanagement wie Chef, Puppet und CFEngine, verwendet diese Software eine agentenlose Architektur. Bei einer agentenbasierten Architektur müssen Knoten über einen lokal installierten Dämon verfügen, der mit einer steuernden Maschine kommuniziert. Bei einer agentenlosen Architektur sind keine Knoten erforderlich, um Hintergrunddämonen zu installieren und auszuführen, um eine Verbindung mit einer steuernden Maschine herzustellen. Diese Art von Architektur reduziert den Overhead im Netzwerk, indem verhindert wird, dass die Knoten die steuernde Maschine abfragen.

Ziele

Die Hauptziele sind Einfachheit und Benutzerfreundlichkeit. Das Hauptaugenmerk liegt auf der Sicherheit und Zuverlässigkeit. Es bietet ein Minimum an beweglichen Teilen, die Verwendung von OpenSSH für den Transport und eine Sprache, die auf die Überprüfbarkeit von Menschen ausgelegt ist – auf für diejenigen, die sich nicht so gut mit dem Programm auskennen.

Module

Module sind meistens eigenständig und können in einer Standard-Skriptsprache wie Python, Ruby, Perl, Bash usw. geschrieben werden. Eine der Haupteigenschaften von Modulen ist die Idempotenz, was bedeutet, dass selbst wenn eine Operation mehrmals wiederholt wird (z.B. nach einer Wiederherstellung nach einem Ausfall), das System immer in den gleichen Zustand versetzt wird.

Inventarkonfiguration

Das Inventar ist eine Beschreibung der Knoten, auf die Ansible zugreifen kann. In der Regel wird dieses durch eine Datei im INI- oder YAML-Format beschrieben, deren Standardspeicherort in /etc/ansible/hosts liegt. Diese listet dabei entweder den Hostnamen oder die IP-Adresse von jedem Knoten auf, auf den Ansible zugreifen kann. Außerdem können Knoten Gruppen zugeordnet werden.

Playbooks

Playbooks sind YAML-Dateien, die Konfigurationen, Bereitstellung und Orchestrierung in Ansible ausdrücken und ermöglichen, Vorgänge an verwalteten Knoten auszuführen. Jedes Playbook ordnet eine Gruppe von Hosts einer Gruppe von Rollen zu. Jede Rolle wird durch Aufrufe an Ansible-Aufgaben dargestellt.

Tower/REST-API

Der Tower ist eine REST-API, ein Webservice und eine webbasierte Konsole, die für IT-Teams mit Mitgliedern mit unterschiedlichen technischen Kenntnissen und Fähigkeiten besser nutzbar macht. Es ist eine Drehscheibe für Automatisierungsaufgaben. Tower ist ein kommerzielles Produkt, das von Red Hat Inc. unterstützt wird.

Plattform Support

Kontrollmaschinen müssen ein Linux/Unix-Host sein und Python. Verwaltete Knoten müssen, wenn sie Unix-ähnlich sind, über Python 2.4 oder höher verfügen. Für verwaltete Knoten mit Python 2.5 oder früher wird auch das Paket python-simplejson benötigt. Seit Version 1.7 können auch Windows-Knoten verwaltet werden. In diesem Fall wird anstelle von SSH natives PowerShell-Remoting verwendet, das vom WS-Management-Protokoll unterstützt wird.

Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG