AWX è un'applicazione Web open source che fornisce l'interfaccia utente, l'API REST e il motore delle attività per Ansible. È la versione open source di Ansible Tower. AWX ti consente di gestire playbook, inventari e pianificare i lavori da eseguire utilizzando l'interfaccia web.
In questo tutorial, ti mostreremo come installare e configurare AWX sul server Ubuntu 18.04. Installeremo l'AWX con Nginx come proxy inverso e basato sulla connessione sicura HTTPS.
Prerequisito
- Server Ubuntu 18.04
- Memoria RAM +4 GB e 2 core
- Privilegi di root
Cosa faremo:
- Installa Docker e Ansible
- Installa pacchetti aggiuntivi
- Scarica e configura il codice sorgente Ansible AWX
- Installa Ansible AWX
- Installa e configura Nginx come proxy inverso
- Configura Firewall UFW
- Test
Passaggio 1:installazione di Docker e Ansible
In primo luogo, installeremo i pacchetti principali necessari per l'installazione di AWX, sono Docker e Ansible stesso. Prima di installare questi pacchetti, aggiorna il repository di Ubuntu usando il comando seguente.
sudo apt update
Ora installa Docker e Ansible.
sudo apt install ansible -y
sudo apt install docker.io -y
Una volta completata l'installazione, controlla la finestra mobile e ansible utilizzando i seguenti comandi.
docker version
ansible --version
Di seguito il risultato.
Passaggio 2:installazione di pacchetti aggiuntivi
Ora installeremo pacchetti aggiuntivi per l'installazione di AWX. Installeremo il pacchetto 'python-pip' sul sistema, quindi installeremo docker-compose e docker-py dal repository python PyPI.
Installa 'python-pip' usando il comando apt di seguito.
sudo apt install python-pip -y
Una volta completata l'installazione, installa i pacchetti docker-compose 1.9.0 e docker-py dal repository PyPI utilizzando i comandi pip seguenti.
pip install docker-compose==1.9.0
pip install docker-py
Successivamente, dobbiamo installare nodejs e npm sul server.
Esegui il comando seguente.
sudo apt install nodejs npm -y
Una volta completato, aggiorna il npm all'ultima versione.
npm install npm --global
E di conseguenza, tutte le dipendenze sono state installate nel sistema. E siamo pronti per installare l'AWX.
Fase 3:scarica il codice sorgente AWX e configura
In questo passaggio, scaricheremo il codice sorgente AWX e configureremo il file di inventario per l'installazione AWX.
Scarica il codice sorgente AWX dal repository git e vai alla directory di installazione di awx.
git clone https://github.com/ansible/awx.git
cd awx/installer/
Successivamente, genera la nuova chiave segreta per awx utilizzando il comando openssl di seguito.
openssl rand -hex 32
Copia la chiave segreta generata nella tua nota.
Ora modifica il file di configurazione 'inventario'.
vim inventory
Cambia la 'postgres_data_dir' nella directory '/var/lib/pgdocker'.
postgres_data_dir=/var/lib/pgdocker
Cambia 'host_port' in '8080'.
host_port=8080
Decommenta la riga 'use_docker_compose' e cambia il valore in 'true', perché gestiremo awx usando la finestra mobile compose.
use_docker_compose=true
Ora assicurati che 'docker_compose_dir' si trovi nella directory '/var/lib/awx'.
docker_compose_dir=/var/lib/awx
Modifica le credenziali per 'pg_password', 'rabbitmq_password', 'rabbitmq_erlang_cookie', 'admin_user' e 'admin_password' con le tue credenziali password.
...
pg_password=hakaseposgresawx
...
rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster
...
admin_user=hakase
admin_password=hakasepass
...
dopodiché, cambia la chiave segreta della configurazione awx usando la chiave generata in alto.
secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33
Quindi decommenta 'project_data_dir' e lascia il valore come predefinito.
project_data_dir=/var/lib/awx/projects
Salva e chiudi la configurazione.
Di seguito è riportato il file modificato 'inventario'.
grep -v '^#' inventory
file di configurazione dell'inventario.
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
E di conseguenza, siamo pronti per installare awx nella fase successiva.
Passaggio 4:installazione di Ansible AWX
Installa awx usando il seguente comando ansible-playbook.
ansible-playbook -i inventory install.yml
Il playbook eseguirà alcune attività tra cui il download di immagini docker e la creazione di nuovi contenitori postgresql, memcached, rabbitmq, l'applicazione web awx e l'attività awx.
E sotto c'è il risultato.
Quindi, vai alla directory '/var/lib/awx' e otterrai la configurazione 'docker-compose.yml'. Quindi controlla tutti i contenitori docker disponibili utilizzando il comando docker-compose.
cd /var/lib/awx
docker-compose ps
E ti verranno mostrati i contenitori awx come di seguito.
Inoltre, puoi controllare i registri del servizio "attività" utilizzando il comando seguente.
docker-compose logs task
Passaggio 5 - Installa e configura Nginx come proxy inverso
Dopo aver installato awx, installeremo e configureremo Nginx come proxy inverso per awx che esegue la porta '8080'.
Installa Nginx usando il seguente comando apt.
sudo apt install nginx -y
Una volta completata l'installazione, vai alla directory '/etc/nginx/sites-available/' e crea una nuova configurazione di host virtuale chiamata 'awx' usando vim editor.
cd /etc/nginx/sites-available/
vim awx
Ora incolla la configurazione qui sotto.
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/;
}
}
Modifica il nome di dominio e l'indirizzo IP proxy_pass con il tuo, quindi salva ed esci.
Ora attiva l'host virtuale 'awx' e testa la configurazione di nginx.
ln -s /etc/nginx/sites-available/awx /etc/nginx/sites-enabled/
nginx -t
Assicurati che non ci siano errori con la configurazione di nginx, quindi riavvia il servizio nginx.
sudo systemctl restart nginx
Di conseguenza, l'installazione e la configurazione di Nginx come proxy inverso per awx sono state terminate.
Passaggio 6:configurazione del firewall UFW
Aggiungi i servizi SSH, HTTP e HTTPS alla configurazione del firewall UFW.
ufw allow ssh
ufw allow http
ufw allow https
Ora avvia e abilita il servizio firewall ufw.
ufw enable
Digita 'y' su yes e il firewall ufw è stato configurato.
Fase 7 - Test
Apri il tuo browser web e digita il tuo URL awx nella barra degli indirizzi.
https://awx.hakase-labs.io
E ti verrà mostrata la pagina di accesso awx come di seguito.
Ora digita l'utente "hakase" e la password "hakasepass", quindi fai clic sul pulsante "accedi".
Ora ottieni la dashboard dell'amministratore awx come di seguito.
E l'installazione di Ansible AWX con proxy inverso Nginx è stata completata con successo.