Sind Sie es leid, Ansible-Playbooks und Ansible-Befehle jedes Mal manuell auf Ihrem Ansible-Host-Controller auszuführen? Warum verwenden Sie nicht eine Web-Benutzeroberfläche und vereinfachen Sie sich das Leben mit diesem Ansible AWX?
AWX ist eine Open-Source-Webanwendung, die von Red Hat gesponsert wird und eine Benutzeroberfläche und API bereitstellt, um alle Ansible-Aufgaben auszuführen. In diesem Tutorial lernen Sie, Ansible AWX auf einem Ubuntu-System zu installieren und Inventare mit Ansible AWX zu verwalten.
Steigern Sie heute Ihr Spiel mit hochwirksamer Automatisierung mit Ansible AWX!
Voraussetzungen
Dieses Tutorial besteht aus schrittweisen Anleitungen. Wenn Sie folgen möchten, stellen Sie sicher, dass Sie Folgendes bereit haben:
- Einen Ansible-Controller-Host – Dieses Tutorial verwendet Ansible v2.11.7 auf einer Maschine mit der Version Ubuntu 20.04.4 LTS.
- Docker – Dieses Tutorial verwendet Docker v19.03.11 auf einer Maschine mit der Version Ubuntu 20.04.4 LTS.
- Python v3.6 oder neuer auf Ihrem Ansible-Controller-Host installiert – Dieses Tutorial verwendet Python v3.8.10.
- A GitHub account with one private and one public repository created in GitHub that you will use to store Ansible Playbook.
Installation von Abhängigkeiten und Konfiguration von Ansible AWX
Ansible AWS war die Grundlage für die Erstellung von Ansible Tower. Ansible AWX erleichtert IT-Teams die Verwendung von Ansible für Tests; in einem Labor, der Entwicklung oder anderen POC-Umgebungen.
Da Ansible AWS nicht standardmäßig auf Ihrem Linux-System installiert ist, müssen Sie zuerst Ansible AWS installieren, um es als Multi-Container mit dem Ansible Playbook auszuführen.
1. Führen Sie jeden der folgenden Befehle aus, um Ihre Systempakete zu aktualisieren und das Docker-Compose-Plugin zu installieren.

2. Führen Sie anschließend den folgenden Befehl aus, um die installierte Docker-Compose-Version auf Ihrem System zu überprüfen.
Die Ausgabe unten zeigt, dass die neueste Docker-Compose-Version v2.5.0 installiert ist und bestätigt, dass Docker-Compose korrekt installiert ist.

3. Führen Sie jeden der folgenden Befehle aus, um Pakete als Voraussetzungen für die Arbeit mit Ansible AWX zu installieren.



4. Führen Sie nun die folgenden Befehle aus, um das AWX-Paketarchiv aus dem öffentlichen Git-Repository herunterzuladen (wget) und das Paket dann zu entpacken.

5. Führen Sie die folgenden Befehle aus, um zum AWX-Installationsverzeichnis zu wechseln (cd) (awx-17.1.0/installer/) und das zufällige Passwort (pwgen) zu generieren.
Ihr AWX-Installationsverzeichnis (awx-17.1.0/installer/) kann je nach installierter Ansible AWX-Version auf Ihrem Computer variieren.
Notieren Sie sich das generierte Passwort, da Sie es als Geheimschlüssel in der AWX-Konsole benötigen werden.

6. Öffnen Sie abschließend in Ihrem Texteditor die Bestandsdatei im AWX-Installationsverzeichnis (awx-17.1.0/installer/). Die Bestandsdatei enthält die Konfigurationen von AWX, die beim Anmelden in der AWX-Benutzeroberfläche verwendet werden.
Ändern Sie in der Bestandsdatei den Wert von admin_password in „password“ und secret_key mit dem zufälligen Passwort, das Sie im fünften Schritt generiert haben.

Installation und Starten von Ansible AWX mit Ansible Playbook
Sie haben Ansible AWX ordnungsgemäß konfiguriert, und jetzt ist es an der Zeit, es mithilfe eines Ansible-Playbooks (install.yml) zu installieren. Das install.yml Ansible-Playbook wird mit dem Ansible-AWX-Paket geliefert, das Sie extrahiert haben. Dieses Playbook enthält Aufgaben zum Ausführen von Befehlen zum Erstellen eines Docker-Images und zum Ausführen mehrerer Container.
1. Rufen Sie den untenstehenden ansible-playbook-Befehl auf, um das Ansible-Playbook install.yml auszuführen.
Unten sehen Sie, dass einige Aufgaben den Status geändert haben, was darauf hinweist, dass der AWX-Host nicht im richtigen Zustand war und geändert wurde, um den Befehl auszuführen.
Im Gegenteil zeigen andere Aufgaben jedoch einen OK-Status an, was darauf hinweist, dass sie keine Änderungen erfordern.

2. Führen Sie anschließend den Docker-Befehl unten aus, um alle verfügbaren Docker-Container aufzulisten.
Die Ausgabe unten zeigt die ausgeführten Container (awx_tasks, awx_redis, awx_web und awx_postgres) und bestätigt, dass AWX korrekt installiert ist.

3. Öffnen Sie schließlich Ihren bevorzugten Browser und navigieren Sie zu Ansible AWX (https://AWX-HOST-IP:80). Stellen Sie sicher, dass Sie AWX-HOST-IP durch die IP-Adresse Ihres Ansible-Hosts ersetzen. Wenn alles gut läuft, sehen Sie auf Ihrem Browser die Anmeldeseite von Ansible AWX, wie unten gezeigt.
Geben Sie Ihren Benutzernamen (admin) und Ihr Passwort (password) ein und klicken Sie auf Anmelden, um auf das Dashboard von Ansible AWX zuzugreifen. Diese Anmeldedaten sind diejenigen, die Sie im letzten Schritt des Abschnitts „Abhängigkeiten installieren und Ansible AWX konfigurieren“ konfiguriert haben.
AWX installiert automatisch ein selbstsigniertes Zertifikat für die HTTPS-Kommunikation, das möglicherweise in Ihrem Browser akzeptiert werden muss.

Nach dem Anmelden leitet Ihr Browser zur AWX-Dashboard weiter, wie unten gezeigt.

Erstellen und Verwalten von Inventaren
Jetzt, da Sie Zugriff auf das Ansible AWX-Dashboard haben, können Sie mit der Aufgabenautomatisierung arbeiten. In diesem Tutorial verwalten Sie mehrere Ansible-Komponenten im Ansible AWX-Dashboard. Zuerst müssen Sie jedoch Inventare erstellen und verwalten.
1. Klicken Sie auf dem AWX-Dashboard auf „Inventories“, um die Inventarliste im Ansible AWX zu öffnen. Standardmäßig ist ein Demo-Inventar vorhanden, wie unten gezeigt.
Ignorieren Sie das Demo-Inventar und klicken Sie auf die Schaltfläche „Hinzufügen“, um ein neues Inventar zu erstellen.

2. Geben Sie auf der Seite „Neues Inventar erstellen“ die folgenden Parameter an, um Ihr erstes Inventar im Ansible AWX-Dashboard zu konfigurieren:
- Name – ATA Learning (Sie können den Namen beliebig angeben).
- Beschreibung – Beschreiben Sie das Inventar, dies ist optional, hilft jedoch bei der Identifizierung von Inventaren.
- Organisation – Wählen Sie die Option „Standard“ aus. AWX erstellt standardmäßig eine Organisation, Sie können jedoch auch Ihre eigene erstellen.
Sobald Sie alle oben genannten Details angegeben haben, klicken Sie auf die Schaltfläche „Speichern“, wie unten gezeigt.

3. Klicken Sie abschließend auf die Bestände-Registerkarte (linkes Panel), um zu überprüfen, ob der neu erstellte Bestand (ATA Learning) vorhanden ist, wie unten gezeigt.

Erstellen und Ausführen von Ansible-Jobs
Sie haben Ihren Bestand erfolgreich konfiguriert, aber im Moment ist er nutzlos, es sei denn, Sie rufen ihn mit einem Job auf. Ein Job ist eine Instanz von AWX, die ein Ansible-Playbook gegen den Bestand eines Hosts startet. Und natürlich müssen Sie, bevor Sie einen Job aufrufen können, zuerst einen erstellen:
Um einen Ansible zu erstellen und einen Ansible-Job auszuführen:
1. Erstellen Sie eine YML-Datei im GitHub-Repository und kopieren/einfügen Sie das unten stehende Playbook. Sie können die YML-Datei wie gewünscht benennen, aber dieses Tutorial verwendet das Playbook namens ata.yml.

2. Springen Sie zu Ihrem Ansible-AWX-Dashboard und klicken Sie im linken Panel auf Projekte, um auf die Listen der verfügbaren Projekte zuzugreifen. Sie benötigen ein Projekt, bevor Sie einen Job erstellen können.
Ignorieren Sie das Demoprojekt und klicken Sie auf die Schaltfläche Hinzufügen, um ein neues Projekt zu erstellen.

3. Geben Sie die Details des neuen Projekts mit folgendem ein und klicken Sie auf Speichern, um das neue Projekt zu speichern:
- Name – Der Projektname kann beliebig sein, aber in diesem Tutorial wird der Projektname auf myproject festgelegt.
- Beschreibung – Wie bei Ihrem Inventar ist die Hinzufügung einer Beschreibung optional, hilft jedoch dabei, Projekte voneinander zu unterscheiden.
- Organisation – Ähnlich wie bei Ihrem Inventar, wählen Sie einfach Standard für die Organisation.
- Quellcode-Credential-Typ – Wählen Sie Git als Ihren SCM.
- Quellcode-URL – Geben Sie die GitHub-URL Ihres Quellcodes an.

4. Nach dem Erstellen eines Projekts klicken Sie auf Vorlagen in der linken Seitenleiste, um auf alle verfügbaren Vorlagen zuzugreifen, wie unten gezeigt.
Auf der Vorlagenseite klicken Sie auf die Schaltfläche „Hinzufügen“ und wählen Sie die Option „Jobvorlage hinzufügen“, um eine Vorlage zu erstellen.

5. Geben Sie nun die untenstehenden Details an und klicken Sie unten auf „Speichern“, um die neue Jobvorlage zu speichern:
- Name – Legen Sie den Namen der Jobvorlage nach Belieben fest, aber in diesem Tutorial wird der Name der Jobvorlage auf myjob festgelegt.
- Jobtyp – Legen Sie die Aktion fest, die der Job ausführen wird (Ausführen).
- Projekt – Wählen Sie das Projekt aus, das Sie in Schritt drei erstellt haben (myproject).
- Inventar – Wählen Sie das Inventar aus, das Sie im zweiten Schritt des Abschnitts „Erstellen und Verwalten von Inventaren“ erstellt haben (ATA Learning).
- Playbook – Wählen Sie das Playbook aus, das Sie im ersten Schritt des Abschnitts „Erstellen und Ausführen von Ansible-Jobs“ erstellt haben (ata.yml).

6. Gehen Sie schließlich auf die Vorlagen-Seite und starten Sie den neu erstellten Job mit folgendem:
- Klicken Sie auf den Job (myjob), um auf die Informationsseite des Jobs zuzugreifen.
- Wechseln Sie zum Details-Tab, wo Sie die Details des Jobs sehen werden.
- Klicken Sie unten auf der Seite auf Starten, um den Job zu starten.

Wie Sie unten sehen können, wurde der Job erfolgreich auf localhost ausgeführt und alle Dateien im im Playbook angegebenen Verzeichnis (ata.yml) aufgelistet.

Schlussfolgerung
In diesem Tutorial haben Sie das Ansible AWX Open-Source-Tool genutzt, um Ansible-Playbooks, Inventare und Playbooks mit einem einzigen UI-Dashboard zu verwalten. Sie haben gelernt, wie man einen Ansible-Job ausführt, wie z.B. das Auflisten von Dateien in einem bestimmten Verzeichnis.
Jetzt, da Sie über solide Kenntnisse der Ansible AWX-Software verfügen, sind Sie bereit, alle Ihre zukünftigen Ansible-Playbooks mit Ansible AWX auszuführen? Möglicherweise möchten Sie Aufgaben automatisieren, indem Sie Cron-Jobs hinzufügen?