Ansible AWX-Leitfaden: Grundverwendung und Konfiguration
AWX ist eine Open-Source-Webanwendung, die eine Benutzeroberfläche, REST-API und Aufgaben-Engine für Ansible bereitstellt. Es ist die Open-Source-Version des Ansible Tower. Mit dem AWX können Sie Ansible Playbooks, Inventare verwalten und Aufträge für die Ausführung über die Weboberfläche planen.
In diesem Tutorial zeigen wir Ihnen die grundlegende Bedienung des Ansible AWX. Sie benötigen also einen Server, der bereits installiert ist Ansible AWX. Wir decken einige Grundkonfigurationen von Ansible AWX ab, die Sie kennen müssen, wie z.B. Setup-Anmeldeinformationen, Inventare, Setup- und Run-Jobvorlagen usw. Wenn Sie Ansible noch nicht installiert haben, dann lesen Sie bitte dieses Tutorial: https://www.howtoforge.com/how-to-install-ansible-awx-with-nginx-reverse-proxy-on-ubuntu-1804/.
Voraussetzungen
- 2 oder 3 Server
- 10.5.5.5.20 ansible-awx
- 10.5.5.5.21 lemp
- Grundkenntnisse über Ansible
- Root-Rechte
Was wir tun werden:
- Einrichtung und Konfiguration der Umgebung
- Einrichtungs-Anmeldeinformationen
- Einrichten von Beständen
- Projekte einrichten
- Auftragsvorlagen einrichten
- Jobs ausführen
Schritt 1 – Einrichtung und Konfiguration der Umgebung
In diesem Tutorial werden wir das Ansible-Playbook für die grundlegende LEMP-Installation im Ansible AWX-Dashboard einsetzen und ausführen.
Wir haben zwei Server für den awx selbst und den Zielrechner.
10.5.5.20 ansible-awx 10.5.5.21 lemp
Jetzt werden wir das Playbook unter dem Namen „hakase“ und unter Verwendung der schlüsselbasierten SSH-Authentifizierung einsetzen. Stellen Sie daher sicher, dass Sie die benutzer- und schlüsselbasierte Authentifizierung auf dem Zielcomputer „lemp“ bereits eingerichtet haben.
Testen Sie mit dem folgenden Befehl vom ‚ansible-awx‚ Server.
su - hakase ssh hakase@10.5.5.21
Stellen Sie sicher, dass Sie ohne Passwort angemeldet sind.
Nun muss der Benutzer’hakase‘ das Root-Passwort ohne Passwort für laufende Aufgaben haben.
Führen Sie auf dem Zielcomputer ‚lemp‚ den Befehl sudo wie folgt aus.
su - hakase sudo su
Stellen Sie sicher, dass Sie die Root-Rechte ohne Passwort eingegeben haben.
Nun müssen Sie die Python-Pakete auf allen von Ansible verwalteten Zielmaschinen installieren.
sudo apt install python -y
Schritt 2 – Einrichten der Anmeldeinformationen
Zuerst müssen wir die Ansible AWX Credentials konfigurieren. Es wird für die Authentifizierung beim Starten und Ausführen von Aufträgen auf verwalteten Servern, bei der Synchronisierung mit Bestandsquellen und beim Import von Projekten verwendet.
Standardmäßig unterstützt der Ansible AWX viele Anmeldeinformationen, einschließlich der VM-Maschine durch SSH-Authentifizierung, Amazon Web Services, Google Compute Engine, OpenStack, Vault Passwort, Source Control usw.
Um Anmeldedaten einzurichten, klicken Sie auf das Menü „Anmeldedaten“ auf der linken Seite und klicken Sie auf die Schaltfläche „+“ auf der rechten Seite.
Geben Sie nun die Anmeldeinformationen‘NAME‚ und‘DESCRIPTION‚ ein und geben Sie dann den‘CREDENTIAL TYPE‚ auf‘Machine‚ an.
Einfach ausgedrückt, ermöglicht Ihnen die Berechtigung „Maschine“ die Verwendung der SSH-Authentifizierung zur Verwaltung von Servern. Seine Unterstützung für passwortbasierte und schlüsselbasierte Authentifizierungen.
Für diesen Leitfaden verwenden wir die schlüsselbasierte Authentifizierung. Geben Sie also den Benutzernamen ein und fügen Sie die privaten Schlüssel für diesen Benutzer ein.
Klicken Sie dann auf die Schaltfläche „SAVE„.
Infolgedessen wurde der neue Ansible AWX-Anmeldeinformationen vom Typ’Maschine‘ erstellt.
Schritt 3 – Einrichten von Inventaren
Inventare sind Gruppen von Hostservern, die von Ansible AWX verwaltet werden. Die Inventare ermöglichen es Ihnen, eine Gruppe mit mehreren Host-Servern zu erstellen. Und es macht es einfacher, verschiedene Server mit unterschiedlichen Umgebungen zu verwalten.
Um Server zu verwalten und bereitzustellen, müssen wir eine neue Bestandsgruppe erstellen und dann Server-Hosts zu dieser Bestandsgruppe hinzufügen.
Um neue Bestände hinzuzufügen, klicken Sie auf das Menü „Bestände“ auf der linken Seite, dann auf die Schaltfläche „+“ und wählen Sie „Bestände“.
Geben Sie den‘NAME‚ und‘DESCRIPTION‚ des Inventars ein und klicken Sie dann auf die Schaltfläche‘SAVE‚.
Klicken Sie nun auf die Registerkarte‘HOSTS‚ und dann auf die Schaltfläche‘+‘, um neue Hosts hinzuzufügen.
Geben Sie den‘HOST NAME‚,‘DESCRIPTION‚ und die‘VARIABLES‚ mit zusätzlicher Konfiguration für die IP-Adresse des Zielsystems’ansible_host: 10.5.5.5.21‘ ein.
Klicken Sie nun auf die Schaltfläche „SAVE„.
Als nächstes müssen wir die Konfiguration der Hosts sicherstellen, indem wir die Hosts mit dem Befehl ping überprüfen.
Zurück zur Registerkarte‘HOSTS‚, markieren Sie den Name-Server Ihrer Hosts und klicken Sie auf die Schaltfläche‘RUN COMMANDS‚.
Wählen Sie nun das‘MODUL‚ mit dem Namen‘ping‚, klicken Sie auf die Suchschaltfläche in der Spalte‘MACHINE CREDENTIAL‚ und wählen Sie Ihre eigene aus, dann klicken Sie auf die Schaltfläche‘LAUNCH‚.
Und du wirst auf die neue Seite weitergeleitet und unten ist das Ergebnis.
Ein neues Inventar wurde erstellt und der Server des Zielmotors hinzugefügt.
Schritt 4 – Projekte einrichten
Projekte werden als Ansible Playbooks auf dem AWX dargestellt. Seine Sammlungen von Ansible Playbooks, die wir über das lokale Projektverzeichnis oder über das SCM-System wie Git, Subversion, Mercurial und RedHat Insights verwalten können.
Um neue Projekte zu erstellen, klicken Sie auf das Menü „Projekte“ auf der linken Seite und klicken Sie auf die Schaltfläche „+“.
Geben Sie den‘NAME‚ Ihres Projekts und die‘BESCHREIBUNG‚ ein, wählen Sie dann den‘SCM-Typ‚ zu‘Git‚ und fügen Sie Ihr Playbook-Repository ein.
Klicken Sie nun auf die Schaltfläche „SPEICHERN“ und als Ergebnis wurde ein neues Projekt für das Spielbuch erstellt.
Zusätzlich:
Wenn Sie ein neues Projekt mit dem SCM-Typ‘Manual‚ erstellen möchten, können Sie ein neues Playbook-Verzeichnis erstellen, das sich unter dem Verzeichnis‘/var/lib/awx/projects‚ befindet.
Das Verzeichnis ‚/var/lib/awx/projects‘ ist das Standardprojektverzeichnis für Ihre Ansible Playbooks, wenn Sie die AWX-Docker-Version mit aktiviertem ‚project_data_dir‚ verwenden.
Schritt 5 – Neue Jobvorlagen erstellen
Die Jobvorlage ist die Definition, Ansible Playbooks selbst auszuführen. Um also eine neue Jobvorlage zu erstellen oder die Jobvorlage auszuführen, müssen wir Ansible Playbook aus unserem „Project“, die „Credentials“ für die Authentifizierung und die Zielcomputer, die auf den „Inventories“ gespeichert sind, hinzufügen.
Für diesen Leitfaden haben wir bereits ein neues Projekt, eine neue Qualifikation und ein neues Inventar erstellt. Klicken Sie dazu einfach auf das Menü „Vorlagen“ auf der linken Seite, dann auf die Schaltfläche „+“ und wählen Sie die Option „Auftragsvorlage„.
Nun müssen Sie den‘NAME‚ und‘DESCRIPTION‚ des Jobs eingeben. Wählen Sie dann die Optionen‘INVENTORY‚,‘CREDENTIAL‚ und‘PROJECT‚. Und danach geben Sie das‘PLAYBOOK‚ an, das Sie ausführen und bereitstellen möchten.
Und so wurde die neue Jobvorlage Ansible AWX erstellt.
Schritt 6 – Ausführen der Auftragsvorlage
Nachdem wir die neue Jobvorlage erstellt haben, führen wir die Jobvorlage aus und stellen die Playbooks ‚Projekte‘ auf Ziel-Hosts auf dem ‚Inventar‘ bereit.
Klicken Sie auf das Menü „Vorlagen“ auf der linken Seite und Sie erhalten eine Liste der verfügbaren Jobvorlagen.
Sobald der Job beendet ist, erhalten Sie das grüne Zeichen im Namen der Jobvorlage.
Klicken Sie auf das grüne Zeichen im Namen der Jobvorlage und Sie erhalten das aktuelle Ergebnis dieses Jobs angezeigt.
Der Auftrag wurde erfolgreich abgeschlossen, und die Zielmaschine wurde mit dem LEMP-Stack über den Ansible AWX installiert.
Schritt 7 – Testen der Zielmaschine
Testen des Domänennamens des Zielcomputers. Die Konfiguration des Domänennamens, die unter der Konfiguration‘roles/web/vars/main.yml‚ gespeichert ist.
Überprüfung der Nginx- und PHP-FPM-Dienste mit systemctl-Befehlen.
systemctl status nginx systemctl status php7.2-fpm
Testen der MySQL-Datenbank auf dem Zielcomputer. Detaillierte Konfigurationen der MySQL-Datenbank, die in der Konfigurationsdatei’roles/db/vars/main.yml‘ gespeichert sind.
Infolgedessen wurde der LEMP-Stack auf dem Zielcomputer über den Ansible AWX installiert.