AWX steht für „Ansible Web eXecutable“ und ist ein kostenloses Open-Source-Projekt, mit dem Sie Ihr Ansible-Projekt einfach verwalten und steuern können. Es bietet eine webbasierte Benutzeroberfläche und eine Task-Engine, die auf Ansible aufbauen. Es bietet eine leistungsstarke REST-API und ermöglicht es Ihnen, Inventar mit anderen Cloud-Quellen zu verwalten oder zu synchronisieren, den Zugriff zu steuern und mit LDAP zu integrieren.
In diesem Tutorial zeigen wir Ihnen, wie Sie Ansible AWX mit Docker unter CentOS 8 installieren.
Voraussetzungen
- Ein Server mit CentOS 8 und mindestens 4 GB RAM.
- Auf Ihrem Server ist ein Root-Passwort konfiguriert.
Erste Schritte
Bevor Sie beginnen, müssen Sie das EPEL-Repository in Ihrem System installieren. Sie können es mit dem folgenden Befehl installieren:
dnf install epel-release -y
Als Nächstes müssen Sie einige zusätzliche Pakete installieren, die zum Ausführen von AWX auf Ihrem System erforderlich sind. Sie können alle mit dem folgenden Befehl installieren:
dnf install git gcc gcc-c++ ansible nodejs gettext device-mapper-persistent-data lvm2 bzip2 python3-pip -y
Sobald alle Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.
Installieren Sie Docker und Docker Compose
Als Nächstes müssen Sie Docker installieren, um AWX im Docker-Container auszuführen. Standardmäßig ist die neueste Version von Docker nicht im Standard-Repository von CentOS 8 verfügbar. Sie müssen also das Docker-Repository in Ihrem System hinzufügen. Sie können das Docker-Repository mit dem folgenden Befehl hinzufügen:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Installieren Sie nach dem Hinzufügen die neueste stabile Version von Docker mit dem folgenden Befehl:
dnf install docker-ce-3:18.09.1-3.el7 -y
Überprüfen Sie nach der Installation von Docker die installierte Version von Docker mit dem folgenden Befehl:
docker --version
Sie sollten die folgende Ausgabe erhalten:
Docker-Version 19.03.7, Build 7141c199a2
Starten Sie als Nächstes den Docker-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:
systemctl docker starten
systemctl docker aktivieren
Sie können den Status des Docker-Dienstes mit dem folgenden Befehl überprüfen:
Systemctl-Status-Docker
Sie sollten die folgende Ausgabe erhalten:
Als nächstes installieren Sie Docker Compose mit dem folgenden Befehl:
pip3 install docker-compose
Überprüfen Sie nach der Installation die Docker-Compose-Version mit dem folgenden Befehl:
docker-compose --version
Sie sollten die folgende Ausgabe sehen:
docker-compose Version 1.25.4, Build unbekannt
Führen Sie abschließend den folgenden Befehl aus, um den Python-Befehl für die Verwendung von Python 3 festzulegen:
alternatives --set python /usr/bin/python3
Installieren Sie Ansible AWX
Laden Sie zunächst mit dem folgenden Befehl die neueste Version von Ansible AWX aus dem Git Hub-Repository herunter:
git-Klon https://github.com/ansible/awx.git
Als nächstes generieren Sie einen geheimen Schlüssel zur Verschlüsselung der Inventardatei mit dem folgenden Befehl:
openssl rand -base64 30
Sie sollten die folgende Ausgabe erhalten:
R+kbcDEUS8DlAftAbfWafVqLZ0lUy+Paqo4fEtgp
Hinweis:Denken Sie an die oben genannten Geheimnisse, Sie müssen sie in die Inventardatei einfügen.
Wechseln Sie als Nächstes in das Verzeichnis awx/installer/ und bearbeiten Sie die Inventardatei:
cd awx/installer/
nano Inventory
Ändern Sie die folgenden Zeilen:
[all:vars]dockerhub_base=ansibleawx_task_hostname=awxawx_web_hostname=awxwebpostgres_data_dir="/var/lib/pgdocker"host_port=80host_port_ssl=443docker_compose_dir="~/.awx/awxcompose"pg_username=awxpg_password=awxpasspg_database=awxpg_password=awxpasspg_database=awxpg_port=54password_password=awxpg_port=54password_password=awxpg_port=54 awxpassrabbitmq_erlang_cookie=cookiemonsteradmin_user=adminadmin_password=passwordcreate_preload_data=Truesecret_key=R+kbcDEUS8DlAftAbfWafVqLZ0lUy+Paqo4fEtgpawx_official=trueawx_alternate_dns_servers="8.8.8.8,8.8.4.4"project_data_dir>/project/lib/preawxSpeichern und schließen Sie die Datei, wenn Sie fertig sind. Erstellen Sie dann ein Verzeichnis für Postgres:
mkdir /var/lib/pgdockerFühren Sie abschließend den folgenden Befehl aus, um AWX zu installieren:
ansible-playbook -i Inventory install.ymlNach erfolgreicher Installation sollten Sie folgende Ausgabe erhalten:
Überspringen:[localhost]TASK [local_docker :Webbild laden] ********************************** ****************************************************** **********************Überspringen:[localhost]TASK [local_docker :Task-Image laden] **************** ****************************************************** ****************************************Überspringen:[localhost]TASK [local_docker :Set vollständiger Image-Pfad für lokale Installation] ***************************************** ****************************************Überspringen:[localhost]TASK [local_docker :Set DockerHub-Bildpfade] ********************************************* *************************************************Ok :[localhost]TASK [local_docker :Verzeichnis ~/.awx/awxcompose erstellen] ********************************* ****************************************************** ***geändert:[localhost]TASK [local_docker:Docker-Compose-Konfiguration erstellen] ********************************* ****************************************************** **geändert:[localhos t] => (item=environment.sh)geändert:[localhost] => (item=credentials.py)geändert:[localhost] => (item=docker-compose.yml)geändert:[localhost] => (item =nginx.conf)TASK [local_docker:SECRET_KEY-Datei rendern] ************************************* ****************************************************** **********geändert:[localhost]TASK [local_docker :Container starten] ************************* ****************************************************** ************************geändert:[localhost]TASK [local_docker:CA-Vertrauen in awx_web-Container aktualisieren] ********** ****************************************************** ************************geändert:[localhost]TASK [local_docker:CA-Vertrauen in awx_task-Container aktualisieren] ********** ****************************************************** **********************geändert:[localhost]PLAY RECAP ******************** ****************************************************** ****************************************************** ************localhost :ok=14 ändern d=6 nicht erreichbar=0 fehlgeschlagen=0 übersprungen=95 gerettet=0 ignoriert=0Der obige Befehl erstellt und startet alle erforderlichen Docker-Container für AWX. Sie können die laufenden Container mit dem folgenden Befehl überprüfen:
docker-psSie sollten die folgende Ausgabe sehen:
CONTAINER ID IMAGE BEFEHL ERSTELLT STATUS PORTS NAMEN4b91575d64b1 ansible/awx_task:9.2.0 "/tini -- /bin/sh -c…" Vor etwa einer Minute Nach oben Vor etwa einer Minute 8052/tcp awx_task9827b9831fa5 ansible/awx_web:9.2.0 "/tini -- /bin/sh -c…" Vor ungefähr einer Minute Nach oben Vor ungefähr einer Minute 0.0.0.0:80->8052/tcp awx_web47300ec1c26f postgres:10 "docker-entrypoint.s…" Vor ungefähr einer Minute Nach oben Vor ungefähr a Minute 5432/tcp awx_postgres166b153faa27 ansible/awx_rabbitmq:3.7.4 "docker-entrypoint.s…" Vor ungefähr einer Minute Aufwärts 58 Sekunden "docker-entrypoint.s…" Vor ungefähr einer Minute Nach oben Ungefähr a Minute 11211/tcp awx_memcachedKonfigurieren Sie SELinux und die Firewall
Standardmäßig ist SELinux in CentOS 8 aktiviert. Es wird empfohlen, es zu deaktivieren, damit AWX in der Docker-Umgebung funktioniert. Sie können es deaktivieren, indem Sie die folgende Datei bearbeiten:
nano /etc/sysconfig/selinuxSuchen Sie die folgende Zeile:
SELINUX=erzwingenUnd ersetzen Sie es durch die folgende Zeile:
SELINUX=deaktiviertSpeichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann Ihr System neu, um die Änderungen zu implementieren. Als nächstes müssen Sie den http- und https-Dienst durch die Firewall zulassen. Sie können sie mit dem folgenden Befehl zulassen:
firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add- service=httpsAls nächstes starten Sie den Firewalld-Dienst neu, um die Änderungen zu übernehmen:
firewall-cmd --reloadZugriff auf die AWX-Weboberfläche
Öffnen Sie nun Ihren Webbrowser und geben Sie die URL http://your-server-ip ein. Sie werden zur AWX-Anmeldeseite weitergeleitet:
Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein, die Sie in der Inventardatei definiert haben, und klicken Sie auf das SIGN IN Taste. Sie sollten das AWX-Standard-Dashboard auf der folgenden Seite sehen:
Schlussfolgerung
Herzliche Glückwünsche! Sie haben AWX erfolgreich mit Docker auf CentOS 8 installiert. Sie können Ihr Ansible-Projekt jetzt einfach über die AWX-Weboberfläche verwalten und steuern.