Sollten Sie Ansible für die Automatisierung verwenden?
Wie würden Sie sich fühlen, wenn Sie nur einen Knopfdruck benötigen und alle Ihre Systeme auf dem neuesten Stand, alle notwendigen Pakete installiert und einsatzbereit sind? Klingt fantastisch, oder?
In der modernen IT-Welt verwirklichen DevOps-Ingenieure diesen Traum. Wir haben jetzt Tools wie Ansible, die IT-Managementprozesse mit wenigen Klicks überschaubarer und schneller machen, wodurch Fehler und manuelle Eingaben durch einen Menschen reduziert werden.
Lesen Sie weiter, um alles zu erfahren, was Sie über Ansible wissen müssen, einschließlich einer kurzen Übersicht über die Verwendung.
Was ist Ansible?

Ansible ist eine leistungsstarke Open-Source-Automatisierungs-Engine. Es ist plattformübergreifend und ermöglicht es Entwicklern, Geräte von jedem Betriebssystem aus zu verwalten, einschließlich Windows, macOS und Linux.
Ansible bietet eine Reihe von Funktionen: Konfigurationsmanagement, Cloud-Bereitstellung für die Anwendungsbereitstellung, Systemupdates, Sicherheitsautomatisierung, kontinuierliche Bereitstellung und vieles mehr. Es ist ein leichtes Tool und erfordert keine zusätzliche Software oder Pakete zum Ausführen, was die Bereitstellung vereinfacht.
Kernfunktionen von Ansible
Im Folgenden sind einige der Funktionen aufgeführt, die Ansible als Automatisierungstool bietet.
App-Bereitstellung
Ansible ermöglicht es Entwicklern, Apps schnell und einfach auf Servern bereitzustellen. Dadurch entfällt die Notwendigkeit, benutzerdefinierten Code zu schreiben oder die Paketverwaltung manuell durchzuführen. Stattdessen definieren Sie die Aufgaben, die für die Ausführung einer Anwendung erforderlich sind, und führen sie remote auf dem Zielsystem aus, anstatt Ansible-Playbooks zu verwenden. Sie können ein einzelnes Playbook gleichzeitig an mehrere Geräte senden und die Anwendung auf zahlreichen Servern ausführen.
Cloud-Bereitstellung
Cloud-Bereitstellung ist die Methode, bei der Cloud-Computing-Ressourcen installiert, konfiguriert und verwaltet werden.
Mit Ansible können Sie Cloud-Bereitstellungsaufgaben automatisieren, einschließlich der Einrichtung der Infrastruktur, der Einrichtung von Hosts, der Verwaltung von Netzwerkschnittstellen, der Verwaltung von Firewalls und Benutzern auf den Remote-Hosts.
Konfigurationsmanagement
Die Konfigurationsverwaltung ist eine weitere Funktion von Ansible. Mit Ansible Playbooks oder Ad-hoc-Befehlen können Sie Ihre Systeme mit wenigen Befehlen schnell zum Laufen bringen. Da Ansible YAML als Standardkonfigurationssprache verwendet, ist es einfach, Aufgaben in einem für Menschen lesbaren Format zu erstellen und auf Remote-Computern auszuführen.
Wenn Sie beispielsweise einen frisch bereitgestellten Server haben, können Sie mit Ansible das System aktualisieren, die erforderlichen Pakete installieren und die Dienste auf dem Server starten.
Sicherheitsautomatisierung

Ansible ist bei Sicherheitsautomatisierungsaufgaben hilfreich. Mit einigen Ansible-Befehlen können Sie beispielsweise benutzerdefinierte Firewall-Regeln einrichten, nach Malware suchen, Ihr System mit benutzerdefinierten Tools bereinigen und vieles mehr. Es ermöglicht Ihnen auch, den Zustand Ihres Systems zu überwachen und im Fehlerfall schnell Backups Ihres Systems durchzuführen.
Es verwendet auch SSH, um Benutzer zu authentifizieren und Befehle auf Remote-Hosts auszuführen, was die Verwendung sehr sicher macht.
Ansible Architektur
Lassen Sie uns mehr über die Bestandteile von Ansible Engine erfahren.
Lagerbestände
Ansible verwaltet Remote-Hosts mithilfe von Inventaren. Ein Inventar ist eine einfache Textdatei, die IP-Adressen und Hostnamen von Remote-Rechnern enthält. Hosts in der Inventardatei können in verschiedene Gruppen wie Webserver, Datenbanken, Backups usw. organisiert werden. Das Organisieren von Hosts in Gruppen hilft Benutzern, Befehle auf einer bestimmten Gruppe von Computern auszuführen.
Hinweis: Sie müssen die Ansible-Inventardatei mit mindestens einem Host füllen, bevor Sie Aufgaben ausführen.
Playbooks
Ansible Playbooks sind einfache Textdateien, die in YAML (YAML Ain't Markup Language) geschrieben sind. Sie enthalten Anweisungen oder Befehle, die auf einem Remote-Host ausgeführt werden, um eine bestimmte Aufgabe auszuführen.
Da Ansible Playbooks in YAML geschrieben sind, liegen sie in einem menschenlesbaren Format vor. Dies macht es sehr einfach, Ansible zu verwenden und zu verstehen, da die Benutzer keine neue Syntax beherrschen müssen. Jedes Playbook umfasst mindestens eine oder mehrere Aufgaben, die auf allen oder bestimmten Hosts ausgeführt werden.
Verbunden:
Module
Ansible stellt Benutzern Module zur Verfügung. Module sind Befehle, die bei der Verwaltung eines entfernten Hosts vom Steuerknoten aus helfen. Diese Module ermöglichen es Ansible, Benutzer zu verwalten, Pakete zu installieren und zu deinstallieren, Systeme zu aktualisieren usw. Sie werden in Playbooks für bestimmte Aufgaben nach Bedarf ausgeführt. Ansible bietet mehr als 4600 Module. Sehen Sie sich alle Ansible-Module an.
Plugins
Die Ansible-Architektur ermöglicht benutzerdefinierte Plugins. Sie helfen, die Basisfunktionalität der Ansible-Engine zu erweitern oder zu verbessern. Obwohl es standardmäßig mit mehreren Plugins geliefert wird, können Sie auch benutzerdefinierte Plugins erstellen, die Ihren Anforderungen entsprechen.
API
Ansible erweitert die Funktionalität, indem es Benutzern verschiedene API-Endpunkte zum Debuggen, Ausführen von Befehlen, Rückrufen und mehr zur Verfügung stellt.
Erste Schritte mit Ansible
Ansible ist einfach und schnell einzurichten und zu verwenden. In diesem Abschnitt wird gezeigt, wie Sie Ansible auf einem Host-Rechner installieren, Remote-Hosts konfigurieren und grundlegende Automatisierungsaufgaben ausführen.
Ansible ist plattformübergreifend und wird daher von den wichtigsten Betriebssystemen unterstützt. Der Einfachheit halber behandelt dieses Handbuch die Ansible-Installation auf einer Debian-basierten Linux-Distribution. Überprüfen Sie den Ansible-Installationsprozess für andere Betriebssysteme.
Beginnen Sie mit der Bearbeitung der Datei /etc/apt/sources.list
sudo vim /etc/apt/sources.list

Fügen Sie in der Datei die folgenden Einträge hinzu:
deb http: // ppa.launchpad.net/ansible/ansible/ubuntu trusty main
Der obige Eintrag fügt Ubuntu PPA zu den Debian-Repositorys hinzu, sodass Sie Ansible installieren können.

Führen Sie als Nächstes die folgenden Befehle aus:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt update
$ sudo apt install ansible -y
Der erste Befehl fügt die erforderlichen Schlüssel hinzu.
Die folgenden Befehle aktualisieren die Software-Repositorys und installieren schließlich Ansible.

Nachdem Sie Ansible auf Ihrem System installiert haben, fahren Sie fort.
Erstellen eines Inventars
Der erste Schritt vor dem Ausführen von Ansible-Automatisierungsaufgaben besteht darin, eine Host-Inventardatei einzurichten.
Die Standard-Inventardatei befindet sich in /etc/ansible/hosts . Fügen Sie mit Ihrem bevorzugten Texteditor die IP-Adressen der Remote-Hosts hinzu, die Sie automatisieren möchten.
$ sudo vim /etc/apt/hosts

Speichern Sie die Datei und schließen Sie sie.
Erstellen eines einfachen Playbooks
Ansible Playbooks ermöglichen es Benutzern, Aufgaben zu automatisieren, indem sie die Befehle festlegen, die auf dem Remote-Host ausgeführt werden.
Sie erstellen ein einfaches Ansible-Playbook, das Apache Web Server installiert, erstellen eine Firewall-Regel, um Apache zuzulassen, und startet den Dienst neu.
Ansible verwendet YAML als Standardkonfigurationssprache für seine Playbooks.
Erstellen Sie eine YAML-Datei mit dem Touch-Befehl als:
$ touch first-playbook.yaml
Fügen Sie mit Ihrem Texteditor die Einträge wie im Beispiel-Playbook unten gezeigt hinzu:
$ vim first-ansible-playbook.yaml
---
- hosts: all
become: true
tasks:
- name: Update apt packages
apt:
state: latest
update_cache: yes
- name: Install Apache
apt:
name: apache2
state: latest
- name: Install UFW Firewall
apt:
name: ufw
state: latest
- name: Allow HTTP ufw
ufw:
state: enabled
rule: allow
port: "80"
proto: tcp
- name: Restart Apache
service:
name: apache2
state: restarted
Beginnen Sie im obigen Playbook mit der Angabe der Hosts, auf denen das Playbook ausgeführt werden soll. Da die Inventardatei nur einen Host enthält, stellen Sie die Hosts auf alle ein.
Legen Sie als Nächstes die Anweisung „werde“ fest, die die Ausführung der Aufgaben im Playbook als Root ermöglicht.
Die vorhergehenden Zeilen definieren die auf dem entfernten Host auszuführenden Aufgaben. Sie enthalten einen Namen, der die Funktionen und die eigentlichen Aufgaben beschreibt, die auf dem Host ausgeführt werden sollen.
Der erste weist Ansible an, den Repository-Cache zu aktualisieren; das entspricht dem Befehl:
$ sudo apt-get update
Die folgende Anleitung installiert die neueste Version des Apache Webservers.
Danach ist die Aufgabe der Installation der UFW-Firewall. Dies erfordert das Aktivieren und das Zulassen von Port 80, das Apache für das TCP-Protokoll verwendet.
Schließlich startet die letzte Anweisung den Apache-Webserver neu.
Ansible Playbooks ausführen
Um das Ansible-Playbook auszuführen, müssen wir den Befehl ansible-playbook verwenden , der bei der Installation mit Ansible geliefert wird .
Um die Datei first-playbook.yaml auszuführen, verwenden Sie den Befehl:
$ ansible-playbook --user=ubuntu first-playbook.yaml
Im obigen Befehl wird die Option –user übergeben, die den Benutzer auf dem entfernten Host angibt.
ANMERKUNG: Stellen Sie sicher, dass auf dem Remote-Host SSH-Schlüssel installiert sind.
Sobald Sie den obigen Befehl ausführen, erhalten Sie eine Ausgabe wie gezeigt.

Das obige zeigt, dass alle Befehle auf dem Remote-Host erfolgreich ausgeführt wurden.
Aufgaben überprüfen
Um zu überprüfen, ob die Aufgaben im Playbook erfolgreich ausgeführt wurden, öffnen Sie Ihren Browser und navigieren Sie zur IP-Adresse des Remote-Hosts.
Wenn die Befehle ausgeführt wurden und der Apache-Server läuft, sollten Sie die Standardseite von Apache Ubuntu wie folgt sehen:

Sollten Sie Ansible verwenden?
Abschließend wird deutlich, dass Ansible ein mächtiges Werkzeug ist. Seine Flexibilität, Funktionen und Fähigkeiten machen es zu einem vielversprechenden Werkzeug für aktuelle und zukünftige Automatisierungsaufgaben. Wenn Sie ein DevOps-Ingenieur sind, der Ihre IT-Aufgaben schnell und einfach automatisieren möchte, wird Ansible eine wichtige Rolle auf Ihrem Weg spielen.