So installieren Sie Ansible AWX mit Nginx Reverse Proxy auf Ubuntu 18.04 LTS

AWX ist eine Open-Source-Webanwendung, die die Benutzeroberfläche, die REST-API und die 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, wie Sie den AWX auf dem Ubuntu-Server 18.04 installieren und konfigurieren. Wir werden den AWX mit Nginx als Reverse-Proxy installieren und auf der sicheren HTTPS-Verbindung aufbauen.

Voraussetzung

  • Ubuntu-Server 18.04
  • RAM-Speicher +4GB und 2 Kerne
  • Root-Rechte

Was wir tun werden:

  1. Docker und Ansible installieren
  2. Zusätzliche Pakete installieren
  3. Herunterladen und Konfigurieren eines geeigneten AWX-Quellcodes
  4. Ansible AWX installieren
  5. Nginx als Reverse Proxy installieren und konfigurieren
  6. Einrichten der UFW Firewall
  7. Prüfung

Schritt 1 – Docker und Ansible installieren

Erstens werden wir die wichtigsten Pakete installieren, die für die AWX-Installation benötigt werden, es sind der Docker und Ansible selbst. Bevor Sie diese Pakete installieren, aktualisieren Sie das Ubuntu-Repository mit dem folgenden Befehl.

sudo apt update

Installieren Sie nun das Docker und Ansible.

sudo apt install ansible -y
sudo apt install docker.io -y

Wenn die Installation abgeschlossen ist, überprüfen Sie das Docker und das ansible mit den folgenden Befehlen.

docker version
ansible --version

Nachfolgend sehen Sie das Ergebnis.

Docker installieren

Schritt 2 – Zusätzliche Pakete installieren

Jetzt werden wir zusätzliche Pakete für die AWX-Installation installieren. Wir werden das Paket ‚python-pip‘ auf dem System installieren, und dann den docker-compose und docker-py aus dem PyPI python repository installieren.

Installieren Sie den ‚python-pip‘ mit dem folgenden apt-Befehl.

sudo apt install python-pip -y

Nachdem die Installation abgeschlossen ist, installieren Sie die Docker-Compose 1.9.0 und Docker-Py-Pakete aus dem PyPI-Repository mit den folgenden Pip-Befehlen.

pip install docker-compose==1.9.0
pip install docker-py

Install Python Pip

Als nächstes müssen wir die nodejs und das npm auf dem Server installieren.

Führen Sie den folgenden Befehl aus.

sudo apt install nodejs npm -y

Sobald es fertig ist, aktualisieren Sie das npm auf die neueste Version.

npm install npm --global

Und als Ergebnis wurden alle Abhängigkeiten auf dem System installiert. Und wir sind bereit, den AWX zu installieren.

Schritt 3 – AWX-Quellcode herunterladen und konfigurieren

In diesem Schritt laden wir den AWX-Quellcode herunter und konfigurieren die Bestandsdatei für die AWX-Installation.

Laden Sie den AWX-Quellcode aus dem git-Repository herunter und wechseln Sie in das awx-Installationsverzeichnis.

git clone https://github.com/ansible/awx.git
cd awx/installer/

Danach generieren Sie den neuen geheimen Schlüssel für den awx mit dem Befehl openssl unten.

openssl rand -hex 32

Kopieren Sie den erzeugten geheimen Schlüssel in Ihre Notiz.

Bearbeiten Sie nun die Konfigurationsdatei „Inventar“.

vim inventory

Ändern Sie das’postgres_data_dir‘ in das Verzeichnis’/var/lib/pgdocker‘.

postgres_data_dir=/var/lib/pgdocker

Ändern Sie den’host_port‘ auf’8080′.

host_port=8080

Entkommentiere die Zeile’use_docker_compose‘ und ändere den Wert auf’true‘, da wir den awx mit dem docker compose verwalten werden.

use_docker_compose=true

Stellen Sie nun sicher, dass sich das’docker_compose_dir‘ im Verzeichnis’/var/lib/awx‘ befindet.

docker_compose_dir=/var/lib/awx

Ändern Sie die Zugangsdaten für die Passwörter’pg_password‘,’rabbitmq_password‘,’rabbitmq_erlang_cookie‘,’admin_user‘ und’admin_password‘ mit Ihren eigenen Zugangsdaten.

...
 pg_password=hakaseposgresawx
 ...
 rabbitmq_password=hakaserabbitmqawx
 rabbitmq_erlang_cookie=cookiemonster
 ...
 admin_user=hakase
 admin_password=hakasepass
 ...

Danach ändern Sie den geheimen Schlüssel der awx-Konfiguration mit dem generierten Schlüssel oben.

secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33

Entkommentieren Sie dann das’project_data_dir‘ und lassen Sie den Wert als Standard.

project_data_dir=/var/lib/awx/projects

Speichern und schließen Sie die Konfiguration.

Nachfolgend finden Sie die Bearbeitung der Datei „inventory“.

grep -v '^#' inventory

Bestandskonfigurationsdatei.

localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"
[all:vars]

dockerhub_base=ansible

awx_task_hostname=awx
awx_web_hostname=awxweb
postgres_data_dir=/var/lib/pgdocker
host_port=8080

use_docker_compose=true
docker_compose_dir=/var/lib/awx

pg_username=awx
pg_password=hakaseposgresawx
pg_database=awx
pg_port=5432

rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster

admin_user=hakase
admin_password=hakasepass

create_preload_data=True

secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33

project_data_dir=/var/lib/awx/projects

Und so sind wir bereit, den awx im nächsten Schritt zu installieren.

Schritt 4 – Installation des Ansible AWX

Installieren Sie den awx mit dem folgenden Befehl ansible-playbook.

ansible-playbook -i inventory install.yml

Das Playbook wird einige Aufgaben erledigen, darunter das Herunterladen von Docker-Images und das Erstellen neuer Container nach dem Start vongresql, memcached, rabbitmq, der awx-Webanwendung und der awx-Aufgabe.

Und unten ist das Ergebnis.

Ansible Playbook

Als nächstes gehen Sie in das Verzeichnis’/var/lib/awx‘ und Sie erhalten die Konfiguration von’docker-compose.yml‘. Überprüfen Sie dann alle verfügbaren Docker-Container mit dem Befehl docker-compose.

cd /var/lib/awx
docker-compose ps

Und Sie werden awx-Container wie unten gezeigt.

AWX-Container

Zusätzlich können Sie die Protokolle des Dienstes „task“ mit dem folgenden Befehl überprüfen.

docker-compose logs task

Schritt 5 – Nginx als Reverse Proxy installieren und konfigurieren

Nach der Installation des awx werden wir den Nginx als Reverse-Proxy für den awx installieren und konfigurieren, auf dem der Port’8080′ läuft.

Installieren Sie Nginx mit dem folgenden apt-Befehl.

sudo apt install nginx -y

Sobald die Installation abgeschlossen ist, gehen Sie in das Verzeichnis ‚/etc/nginx/sites-available/‘ und erstellen Sie mit dem vim editor eine neue virtuelle Host-Konfiguration namens ‚awx‘.

cd /etc/nginx/sites-available/
vim awx

Füge nun die untenstehende Konfiguration ein.

server {
   listen 80;
   server_name awx.hakase-labs.io;
   add_header Strict-Transport-Security max-age=2592000;
   rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 ssl http2;
server_name awx.hakase-labs.io;

access_log /var/log/nginx/awx.access.log;
error_log /var/log/nginx/awx.error.log;

ssl on;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_session_timeout 5m;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;

location / {
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://10.5.5.20:8080/;
}
}

Ändern Sie den Domainnamen und die IP-Adresse von proxy_pass mit Ihrer eigenen, dann speichern und beenden Sie.

Aktivieren Sie nun den virtuellen Host ‚awx‘ und testen Sie die nginx-Konfiguration.

ln -s /etc/nginx/sites-available/awx /etc/nginx/sites-enabled/
nginx -t

Nginx Reverse Proxy für Ansible AWX

Stellen Sie sicher, dass bei der nginx-Konfiguration kein Fehler auftritt, und starten Sie dann den nginx-Dienst neu.

sudo systemctl restart nginx

Damit ist die Installation und Konfiguration von Nginx als Reverse-Proxy für awx abgeschlossen.

Schritt 6 – Konfigurieren der UFW Firewall

Fügen Sie die SSH-, HTTP- und HTTPS-Dienste der UFW-Firewall-Konfiguration hinzu.

ufw allow ssh
ufw allow http
ufw allow https

Starten und aktivieren Sie nun den ufw Firewall-Dienst.

ufw enable

Geben Sie ‚y‘ bis yes ein und die ufw-Firewall wurde konfiguriert.

Schritt 7 – Prüfung

Öffnen Sie Ihren Webbrowser und geben Sie Ihre awx-URL in die Adressleiste ein.

https://awx.hakase-labs.io

Und Ihnen wird die awx-Login-Seite wie unten gezeigt.

Ansible AWX-Anmeldung

Geben Sie nun den Benutzer’hakase‘ und das Passwort’hakasepass‘ ein und klicken Sie dann auf die Schaltfläche’Anmelden‘.

Jetzt erhalten Sie das awx Admin Dashboard wie unten beschrieben.

Ansible AWX Dashboard

Und die Installation von Ansible AWX mit Nginx Reverse Proxy wurde erfolgreich abgeschlossen.

Referenz

https://github.com/ansible/awx

Das könnte dich auch interessieren …