Ansible

Ansible

Copyright ┬ę Shutterstock / arka38

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


Weitere Inhalte