Haben Sie schon von Ansible gehört, sind sich aber unsicher, was genau es ist? Keine Sorge, in den nächsten paar Minuten werden Sie ein grundlegendes Verständnis für Ansible gewinnen.
Was verbirgt sich hinter Ansible?
Ansible ist ein Open-Source-Tool für DevOps, das Unternehmen bei der Konfigurationsverwaltung, der Softwarebereitstellung und der Orchestrierung von Abläufen unterstützt. Die Einrichtung ist unkompliziert: Ansible nutzt SSH zur Kommunikation zwischen Servern. Es verwendet sogenannte Playbooks zur Beschreibung von Automatisierungsaufgaben, die wiederum in der leicht verständlichen Sprache YAML verfasst sind.
Ansible verbessert die Zuverlässigkeit, Konsistenz und Skalierbarkeit Ihrer IT-Infrastruktur. Sie können damit die Konfigurationen von Datenbanken, Speichern, Netzwerken und Firewalls automatisieren. Ansible sorgt dafür, dass alle erforderlichen Pakete und Softwarekomponenten auf den Servern in einer einheitlichen Weise vorliegen, damit Ihre Anwendungen reibungslos funktionieren – egal ob in einer Test- oder Produktionsumgebung.
Ein Beispiel: Nehmen wir an, Sie haben eine Debug-Version einer Anwendung, die auf Visual C++ basiert. Um diese Anwendung auf einem beliebigen Computer ausführen zu können, müssen bestimmte Voraussetzungen erfüllt sein, wie beispielsweise die Installation von Microsoft Visual C++-Bibliotheks-DLLs und Visual C++ selbst. Hier kommt Ansible ins Spiel: Es stellt sicher, dass alle diese Basispakete und Softwarekomponenten auf Ihrem Computer vorhanden sind, damit Ihre Anwendung in jeder Umgebung reibungslos laufen kann.
Zusätzlich speichert Ansible alle historischen Daten Ihrer Anwendungen. Das ermöglicht Ihnen, jederzeit zu früheren Versionen zurückzukehren oder Updates einfach durchzuführen.
Werfen wir nun einen Blick auf einige der wichtigsten Merkmale von Ansible:
Agentenlos: Im Gegensatz zu anderen Lösungen wie Puppet oder Chef, benötigt Ansible keine spezielle Software oder Agenten auf den zu verwaltenden Knoten.
Python-basiert: Ansible nutzt Python, eine schnelle und sehr robuste Programmiersprache.
SSH: Es verwendet das simple und sichere, passwortlose Netzwerkauthentifizierungsprotokoll SSH. Sie sind jedoch dafür verantwortlich, den Schlüssel auf den Client zu kopieren.
Push-Architektur: Ansible schiebt die benötigten Konfigurationen auf die Clients. Sie müssen lediglich die Konfigurationen (in Form von Playbooks) aufschreiben und diese dann an die Knoten verteilen. Damit können Sie Änderungen innerhalb von Minuten auf tausenden von Servern anwenden.
Einfache Einrichtung: Ansible benötigt nur minimale Voraussetzungen und Konfiguration, um zu funktionieren.
Die Architektur von Ansible
Wir beginnen mit der Public/Private Cloud, dem Linux-Server. Dieser kann als Repository für alle IT-Installationen und Konfigurationen dienen.
Die hier gezeigte Architektur beinhaltet mehrere Host-Rechner, zu denen sich der Ansible-Server verbindet und über SSH die Playbooks überträgt.
Die Ansible Automation Engine ermöglicht es Anwendern, Playbooks direkt auszuführen, welche auf den Hosts bereitgestellt werden. Die Ansible Automation Engine besteht aus mehreren Komponenten. Die erste ist das Host-Inventar, eine Liste aller IP-Adressen der zu verwaltenden Hosts.
Als Nächstes gibt es die Module. Ansible wird mit hunderten von integrierten Modulen geliefert, welche die Codeabschnitte darstellen, die bei der Ausführung eines Playbooks aktiv werden. Ein Playbook besteht aus mehreren Abschnitten, ein Abschnitt besteht aus verschiedenen Aufgaben und eine Aufgabe verwendet wiederum Module.
Wenn Sie ein Playbook ausführen, werden die entsprechenden Module auf Ihren Hosts ausgeführt. Diese Module führen bestimmte Aktionen aus. Wenn Sie also ein Playbook ausführen, werden diese Aktionen auf Ihren Host-Computern umgesetzt. Sie können auch Ihre eigenen, individuellen Module erstellen, indem Sie ein paar Zeilen Code schreiben und diese dann in Ihr Modul einbinden.
Ein weiterer Bestandteil der Architektur sind die Playbooks. Sie definieren den Arbeitsablauf, da alle in einem Playbook geschriebenen Aufgaben in der Reihenfolge ausgeführt werden, in der Sie sie definiert haben. Wenn Sie beispielsweise zuerst die Installation eines Pakets und dann den Start des Pakets anordnen, wird diese Reihenfolge genau so umgesetzt. Playbooks werden in YAML-Code geschrieben, einer leicht verständlichen Sprache zur Datenserialisierung, die in etwa wie Englisch lesbar ist.
Die Architektur umfasst ebenfalls Plugins, welche spezielle Modultypen sind. Diese Plugins werden ausgeführt, bevor ein Modul auf den Knoten aktiv wird. Plugins dienen vor allem Protokollierungszwecken und laufen auf der Hauptsteuerungsmaschine. Es gibt Call-Back-Plugins, mit denen Sie sich in verschiedene Ansible-Ereignisse einklinken können, um diese zu protokollieren. Cache-Plugins halten Fakten im Cache vor, um kostenintensive Operationen zur Faktenerfassung zu vermeiden. Ansible verfügt zudem über Aktions-Plugins, die als Frontend-Module dienen und Aufgaben auf dem Controller-Computer ausführen können, bevor die eigentlichen Module aufgerufen werden.
Die Architektur beinhaltet auch Verbindungs-Plugins. Nicht immer muss man SSH nutzen, um sich mit den Host-Rechnern zu verbinden. Ansible bietet z.B. ein Docker-Container-Verbindungs-Plugin, mit dem Sie einfach eine Verbindung zu allen Docker-Containern herstellen und mit der Konfiguration beginnen können.
Das war ein Überblick über die Architektur. Im nächsten Schritt möchte ich erklären, wie genau Ansible funktioniert.
Wie arbeitet Ansible?
Ansible arbeitet, indem es sich mit den Knoten verbindet und kleine Programme, sogenannte Ansible-Module, darauf ausführt. Diese Module werden in der Regel über SSH ausgeführt und nach Abschluss der Aufgaben wieder entfernt.
Der Ansible Management Node ist der steuernde Knoten, der die gesamte Ausführung der Playbooks koordiniert. Er ist der Knoten, von dem aus Sie die Installation anstoßen. Die Inventardatei enthält die Liste der Hosts, auf denen die Module ausgeführt werden sollen. Der Verwaltungsknoten stellt eine SSH-Verbindung her, führt dann die Module auf den Host-Rechnern aus und installiert die Produkte. Sobald die Module installiert sind, werden sie wieder entfernt. Das ist der grundlegende Arbeitsablauf von Ansible.
Im nächsten Schritt möchten Sie vielleicht wissen, wie Sie Ansible installieren und konfigurieren können.
Fazit
Ich hoffe, Sie haben jetzt ein besseres Verständnis für Ansible und können damit starten. Ansible revolutioniert die Art und Weise, wie Sie Infrastruktur verwalten. Wenn Sie Systemadministrator oder Entwickler sind, sollten Sie sich praktisch schulen, um Ihre Fähigkeiten zu erweitern.