AWX ist eine Open-Source-Webanwendung, die die Benutzeroberfläche, die REST-API und die Task-Engine für Ansible bereitstellt. Es ist die Open-Source-Version des Ansible Tower. Mit AWX können Sie Ansible-Playbooks und -Inventare verwalten und Jobs für die Ausführung über die Weboberfläche planen.
In diesem Tutorial zeigen wir Ihnen, wie Sie AWX auf dem Ubuntu-Server 18.04 installieren und konfigurieren. Wir werden AWX mit Nginx als Reverse-Proxy installieren und auf der sicheren HTTPS-Verbindung aufbauen.
Voraussetzung
- Ubuntu-Server 18.04
- RAM-Speicher +4 GB und 2 Kerne
- Root-Rechte
Was wir tun werden:
- Installieren Sie Docker und Ansible
- Zusätzliche Pakete installieren
- Ansible AWX-Quellcode herunterladen und konfigurieren
- Installieren Sie Ansible AWX
- Installieren und konfigurieren Sie Nginx als Reverse Proxy
- UFW-Firewall einrichten
- Testen
Schritt 1 – Docker und Ansible installieren
Zuerst werden wir die Hauptpakete installieren, die für die AWX-Installation benötigt werden, nämlich Docker und Ansible selbst. Aktualisieren Sie vor der Installation dieser Pakete das Ubuntu-Repository mit dem folgenden Befehl.
sudo apt update
Installieren Sie nun Docker und Ansible.
sudo apt install ansible -y
sudo apt install docker.io -y
Sobald die Installation abgeschlossen ist, überprüfen Sie Docker und Ansible mit den folgenden Befehlen.
docker version
ansible --version
Unten ist das Ergebnis.
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 docker-compose und docker-py aus dem PyPI-Python-Repository installieren.
Installieren Sie 'python-pip' mit dem folgenden apt-Befehl.
sudo apt install python-pip -y
Installieren Sie nach Abschluss der Installation die Pakete docker-compose 1.9.0 und docker-py aus dem PyPI-Repository mit den folgenden Pip-Befehlen.
pip install docker-compose==1.9.0
pip install docker-py
Als nächstes müssen wir nodejs und npm auf dem Server installieren.
Führen Sie den folgenden Befehl aus.
sudo apt install nodejs npm -y
Aktualisieren Sie npm nach Abschluss auf die neueste Version.
npm install npm --global
Als Ergebnis wurden alle Abhängigkeiten auf dem System installiert. Und wir sind bereit, AWX zu installieren.
Schritt 3 – AWX-Quellcode herunterladen und konfigurieren
In diesem Schritt laden wir den AWX-Quellcode herunter und konfigurieren die Inventardatei 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/
Generieren Sie danach den neuen geheimen Schlüssel für das awx mit dem Befehl openssl unten.
openssl rand -hex 32
Kopieren Sie den generierten geheimen Schlüssel in Ihre Notiz.
Bearbeiten Sie nun die Konfigurationsdatei 'inventory'.
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
Entkommentieren Sie die Zeile „use_docker_compose“ und ändern Sie den Wert auf „true“, da wir die awx mit Docker Compose verwalten werden.
use_docker_compose=true
Stellen Sie nun sicher, dass sich „docker_compose_dir“ im Verzeichnis „/var/lib/awx“ befindet.
docker_compose_dir=/var/lib/awx
Ändern Sie die Zugangsdaten für „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
...
Ändern Sie danach den geheimen Schlüssel der awx-Konfiguration mit dem generierten Schlüssel oben.
secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33
Entkommentieren Sie dann das 'project_data_dir' und belassen Sie den Wert als Standard.
project_data_dir=/var/lib/awx/projects
Speichern und schließen Sie die Konfiguration.
Unten ist die Bearbeitung der 'inventory'-Datei.
grep -v '^#' inventory
Inventarkonfigurationsdatei.
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 als Ergebnis sind wir bereit, das awx in der nächsten Phase zu installieren.
Schritt 4 – Ansible AWX installieren
Installieren Sie awx mit dem folgenden ansible-playbook-Befehl.
ansible-playbook -i inventory install.yml
Das Playbook erledigt einige Aufgaben, darunter das Herunterladen von Docker-Images und das Erstellen neuer Container postgresql, memcached, rabbitmq, die awx-Webanwendung und die awx-Aufgabe.
Und unten ist das Ergebnis.
Als nächstes gehen Sie in das Verzeichnis ‚/var/lib/awx‘ und Sie erhalten die Konfiguration ‚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 Ihnen werden awx-Container wie unten angezeigt.
Außerdem können Sie mit dem folgenden Befehl Protokolle des 'Task'-Dienstes überprüfen.
docker-compose logs task
Schritt 5 – Nginx als Reverse-Proxy installieren und konfigurieren
Nach der Installation von awx installieren und konfigurieren wir Nginx als Reverse-Proxy für die awx, auf der Port „8080“ ausgeführt wird.
Installieren Sie Nginx mit dem folgenden apt-Befehl.
sudo apt install nginx -y
Gehen Sie nach Abschluss der Installation in das Verzeichnis „/etc/nginx/sites-available/“ und erstellen Sie mit dem vim-Editor eine neue virtuelle Hostkonfiguration namens „awx“.
cd /etc/nginx/sites-available/
vim awx
Fügen Sie nun die Konfiguration unten 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 Domänennamen und die Proxy_pass-IP-Adresse durch Ihre eigenen, speichern Sie dann 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
Stellen Sie sicher, dass die nginx-Konfiguration fehlerfrei ist, und starten Sie dann den nginx-Dienst neu.
sudo systemctl restart nginx
Als Ergebnis ist die Installation und Konfiguration von Nginx als Reverse-Proxy für awx abgeschlossen.
Schritt 6 – Konfigurieren Sie die UFW-Firewall
Fügen Sie die SSH-, HTTP- und HTTPS-Dienste zur UFW-Firewallkonfiguration hinzu.
ufw allow ssh
ufw allow http
ufw allow https
Starten und aktivieren Sie nun den ufw-Firewall-Dienst.
ufw enable
Geben Sie 'y' für yes ein und die ufw-Firewall wurde konfiguriert.
Schritt 7 – Testen
Öffnen Sie Ihren Webbrowser und geben Sie Ihre awx-URL in die Adressleiste ein.
https://awx.hakase-labs.io
Und Ihnen wird die awx-Anmeldeseite wie unten angezeigt.
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 gezeigt.
Und die Installation von Ansible AWX mit Nginx-Reverse-Proxy wurde erfolgreich abgeschlossen.