Sie haben von Ansible gehört, wissen aber nicht, was es ist? Keine Sorge, in den nächsten 5 Minuten werden Sie alles über Ansible erfahren.
Was ist Ansible?
Ansible ist ein quelloffenes DevOps-Tool, das Unternehmen bei der Konfigurationsverwaltung, der Bereitstellung, dem Provisioning usw. helfen kann. Es ist einfach zu implementieren und nutzt SSH für die Kommunikation zwischen Servern. Es verwendet das Playbook, um Automatisierungsaufträge zu beschreiben, und das Playbook verwendet eine sehr einfache Sprache, YAML.
Ansible bietet Zuverlässigkeit, Konsistenz und Skalierbarkeit für Ihre IT-Infrastruktur. Mit Ansible können Sie die Konfigurationen von Datenbanken, Speichern, Netzwerken und Firewalls automatisieren. Es sorgt dafür, dass alle notwendigen Pakete und alle andere Software auf dem Server konsistent sind, um die Anwendung auszuführen.
Nehmen wir ein Beispiel: Sie haben eine Debug-Version einer Anwendung, die auf Visual C aufgebaut ist. Wenn Sie diese Anwendung nun auf einem Computer ausführen möchten, müssen Sie einige Voraussetzungen erfüllen, wie z.B. die DLLs der Microsoft Visual C-Bibliothek, und Sie müssen Visual C auf Ihrem Computer installiert haben. An dieser Stelle sorgt Ansible also dafür, dass all diese grundlegenden Pakete und die gesamte Software auf Ihrem Computer installiert werden, damit Ihre Anwendung in allen Umgebungen, sei es in der Test- oder in der Produktionsumgebung, reibungslos laufen kann.
Außerdem werden alle historischen Daten Ihrer Anwendung gespeichert, so dass Sie jederzeit zu einer früheren Version zurückkehren oder ein Upgrade durchführen können.
Werfen wir einen Blick auf einige der folgenden Funktionen.
Agentenlos – Das bedeutet, dass es keine Software oder einen Agenten gibt, der den Knoten verwaltet, wie es bei anderen Lösungen wie Puppet und Chef der Fall ist.
Python – Basiert auf Python, einer der schnellsten und robustesten Programmiersprachen der heutigen Zeit.
SSH – Ein sehr einfaches, passwortloses und sicheres Netzwerk-Authentifizierungsprotokoll. Es liegt also in Ihrer Verantwortung, diesen Schlüssel auf den Client zu kopieren
Push-Architektur – Übertragen Sie die erforderlichen Konfigurationen an die Clients. Alles, was Sie tun müssen, ist, diese Konfigurationen aufzuschreiben (Playbook) und sie alle auf einmal an die Nodes zu übertragen. Sie sehen, wie leistungsfähig es sein kann, die Änderungen innerhalb von Minuten auf Tausende von Servern zu übertragen.
Setup – eine minimale Anforderung und Konfiguration, die erforderlich ist, um es zum Laufen zu bringen.
Ansible Architektur
Beginnen wir mit der Public/Private Cloud, also dem Linux-Server. Er kann auch als Repository für alle IT-Installationen und -Konfigurationen dienen.
Die oben beschriebene Architektur besteht aus einer Reihe von Host-Rechnern, mit denen sich der Ansible-Server verbindet und die Playbooks über SSH überträgt.
Er verfügt über eine Ansible-Automatisierungs-Engine, mit der Benutzer direkt ein Playbook ausführen können, das dann auf den Hosts bereitgestellt wird. Die ansible Automatisierungs-Engine besteht aus mehreren Komponenten. Die erste ist ein Host-Inventar. Dabei handelt es sich um eine Liste mit den IP-Adressen aller Hosts.
Als nächstes gibt es Module. Ansible verfügt über Hunderte von eingebauten Modulen. Module sind die Codestücke, die ausgeführt werden, wenn Sie ein Playbook ausführen. Ein Playbook enthält Playbacks, ein Playbook enthält verschiedene Tasks, und ein Task enthält Module.
Wenn Sie ein Playbook ausführen, werden die Module auf Ihren Hosts ausgeführt, und diese Module enthalten Aktionen. Wenn Sie also ein Playbook ausführen, finden diese Aktionen auf Ihren Hostrechnern statt. Sie können auch Ihre eigenen Module erstellen. Alles, was Sie tun müssen, ist, ein paar Zeilen Code zu schreiben und ihn zu Ihrem Modul zu machen, das Sie dann jederzeit ausführen können.
Dann hat die Architektur Playbooks. Playbooks definieren Ihren Arbeitsablauf, denn alle Aufgaben, die Sie in ein Playbook schreiben, werden in der gleichen Reihenfolge ausgeführt, in der Sie sie geschrieben haben. Wenn Sie z.B. geschrieben haben, dass zuerst ein Paket installiert und dann gestartet werden soll, wird dies auch so gemacht. Playbooks sind sehr einfach zu schreiben YAML-Code. YAML-Code ist eine sehr einfache Sprache zur Serialisierung von Daten; sie ist dem Englischen sehr ähnlich.
Der nächste Teil der Architektur sind Plugins. Plugins sind hier eine besondere Art von Modulen. Diese Plugins werden ausgeführt, bevor ein Modul auf den Nodes ausgeführt wird. Plugins werden zu Protokollierungszwecken auf dem Hauptkontrollrechner ausgeführt. Es gibt Callback-Plugins, mit denen Sie sich zu Anzeige- und Protokollierungszwecken in verschiedene Ansible-Ereignisse einklinken können. Cache-Plugins werden verwendet, um einen Zwischenspeicher für Fakten anzulegen, um kostspielige Operationen zum Sammeln von Fakten zu vermeiden. Ansible verfügt auch über Action-Plugins, bei denen es sich um Front-End-Module handelt, die Aufgaben auf dem Controller-Rechner ausführen können, bevor sie die Module selbst aufrufen.
Die Architektur verfügt über Verbindungs-Plugins. Sie müssen nicht immer SSH für die Verbindung mit Ihren Host-Rechnern verwenden, Sie können auch ein Verbindungs-Plugin einsetzen. Ansible stellt Ihnen beispielsweise ein Docker-Container-Verbindungs-Plugin zur Verfügung. Mit diesem Verbindungs-Plugin können Sie ganz einfach eine Verbindung zu allen Ihren Docker-Containern herstellen und sofort mit der Konfiguration beginnen.
Das war alles über die Architektur. Als nächstes möchte ich Ihnen erklären, wie es genau funktioniert.
Wie funktioniert Ansible?
Ansible stellt eine Verbindung zu Knoten her und gibt kleine Programme aus, die Ansible-Module genannt werden. Ansible führt diese Module dann standardmäßig über SSH aus und entfernt sie, wenn sie fertig sind.
Der Ansible-Managementknoten ist der Kontrollknoten, der die gesamte Ausführung des Playbooks steuert. Es ist der Knoten, von dem aus Sie die Installation ausführen, und die Inventarisierungsdatei enthält die Liste der Hosts, auf denen die Module ausgeführt werden müssen. Der Management-Knoten stellt eine SSH-Verbindung her und führt dann die Module auf den Hostrechnern aus und installiert das Produkt. Sobald die Module installiert sind, werden sie wieder entfernt. So funktioniert Ansible also.
Als Nächstes möchten Sie vielleicht erfahren, wie Sie Ansible installieren und konfigurieren.
Fazit
Ich hoffe, dass Sie jetzt eine Vorstellung von Ansible haben, um damit anzufangen. Ansible verändert die Art und Weise, wie Sie Ihre Infrastruktur verwalten. Wenn Sie Sysadmin oder Entwickler sind, sollten Sie sich dieses praktische Training ansehen, um Ihre Fähigkeiten zu verbessern.