C贸mo instalar Ansible AWX con Nginx Reverse Proxy en Ubuntu 18.04 LTS

Instalar ventana acoplable

AWX es una aplicaci贸n web de c贸digo abierto que proporciona la interfaz de usuario, la API REST y el motor de tareas para Ansible. Es la versi贸n de c贸digo abierto de Ansible Tower. El AWX le permite administrar playbooks, inventarios y programar trabajos de Ansible para que se ejecuten mediante la interfaz web.

En este tutorial, le mostraremos c贸mo instalar y configurar AWX en el servidor Ubuntu 18.04. Vamos a instalar AWX con Nginx como un proxy inverso y construiremos sobre la conexi贸n segura HTTPS.

Requisito previo

  • Servidor Ubuntu 18.04
  • Memoria RAM +4GB y 2 Cores
  • Privilegios de ra铆z

Lo que haremos:

  1. Instalar Docker y Ansible
  2. Instalar paquetes adicionales
  3. Descargue y configure el c贸digo fuente de Ansible AWX
  4. Instalar Ansible AWX
  5. Instalar y configurar Nginx como proxy inverso
  6. Configurar el cortafuegos UFW
  7. Pruebas

Paso 1: instale Docker y Ansible

En primer lugar, vamos a instalar los paquetes principales necesarios para la instalaci贸n de AWX, es Docker y Ansible. Antes de instalar estos paquetes, actualice el repositorio de Ubuntu usando el siguiente comando.

sudo apt update

Ahora instale Docker y Ansible.

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

Una vez que se complete la instalaci贸n, verifique la ventana acoplable y ansible usando los siguientes comandos.

docker version
ansible --version

A continuaci贸n se muestra el resultado.

Instalar ventana acoplable

Paso 2: instalar paquetes adicionales

Ahora vamos a instalar paquetes adicionales para la instalaci贸n de AWX. Instalaremos el paquete ‘python-pip’ en el sistema y luego instalaremos docker-compose y docker-py desde el repositorio PyPI python.

Instale el ‘python-pip’ usando el comando apt a continuaci贸n.

sudo apt install python-pip -y

Una vez completada la instalaci贸n, instale los paquetes docker-compose 1.9.0 y docker-py desde el repositorio PyPI usando los comandos pip a continuaci贸n.

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

Instalar PythonPip

A continuaci贸n, necesitamos instalar nodejs y npm en el servidor.

Ejecute el siguiente comando.

sudo apt install nodejs npm -y

Una vez que se haya completado, actualice el npm a la 煤ltima versi贸n.

npm install npm --global

Y como resultado, todas las dependencias se han instalado en el sistema. Y estamos listos para instalar el AWX.

Paso 3: descargue el c贸digo fuente de AWX y configure

En este paso, descargaremos el c贸digo fuente de AWX y configuraremos el archivo de inventario para la instalaci贸n de AWX.

Descargue el c贸digo fuente de AWX del repositorio de git y vaya al directorio de instalaci贸n de awx.

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

Despu茅s de eso, genere la nueva clave secreta para awx usando el comando openssl a continuaci贸n.

openssl rand -hex 32

Copie la clave secreta generada en su nota.

Ahora edite el archivo de configuraci贸n ‘inventario’.

vim inventory

Cambie ‘postgres_data_dir’ al directorio ‘/var/lib/pgdocker’.

postgres_data_dir=/var/lib/pgdocker

Cambie el ‘host_port’ a ‘8080’.

host_port=8080

Quite el comentario de la l铆nea ‘use_docker_compose’ y cambie el valor a ‘true’, porque vamos a administrar el awx usando el docker compose.

use_docker_compose=true

Ahora aseg煤rese de que ‘docker_compose_dir’ est茅 ubicado en el directorio ‘/var/lib/awx’.

docker_compose_dir=/var/lib/awx

Cambie las credenciales para ‘pg_password’, ‘rabbitmq_password’, ‘rabbitmq_erlang_cookie’, ‘admin_user’ y ‘admin_password’ con sus propias credenciales de contrase帽a.

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

despu茅s de eso, cambie la clave secreta de la configuraci贸n de awx utilizando la clave generada en la parte superior.

secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33

Luego elimine el comentario de ‘project_data_dir’ y deje el valor predeterminado.

project_data_dir=/var/lib/awx/projects

Guarde y cierre la configuraci贸n.

A continuaci贸n se muestra la edici贸n del archivo ‘inventario’.

grep -v '^#' inventory

archivo de configuraci贸n de 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


Y como resultado, estamos listos para instalar el awx en la siguiente etapa.

Paso 4: instale Ansible AWX

Instale awx con el siguiente comando ansible-playbook.

ansible-playbook -i inventory install.yml

El libro de jugadas realizar谩 algunas tareas, incluida la descarga de im谩genes acoplables y la creaci贸n de nuevos contenedores postgresql, memcached, rabbitmq, la aplicaci贸n web awx y la tarea awx.

Y abajo est谩 el resultado.

Manual de Ansible

A continuaci贸n, vaya al directorio ‘/var/lib/awx’ y obtendr谩 la configuraci贸n ‘docker-compose.yml’. Luego verifique todos los contenedores docker disponibles usando el comando docker-compose.

cd /var/lib/awx
docker-compose ps

Y se le mostrar谩n contenedores awx como se muestra a continuaci贸n.

Contenedor AWX

Adem谩s, puede verificar los registros del servicio ‘tarea’ usando el siguiente comando.

docker-compose logs task

Paso 5: instale y configure Nginx como proxy inverso

Despu茅s de instalar awx, instalaremos y configuraremos Nginx como un proxy inverso para awx que ejecuta el puerto ‘8080’.

Instale Nginx usando el siguiente comando apt.

sudo apt install nginx -y

Una vez completada la instalaci贸n, vaya al directorio ‘/etc/nginx/sites-available/’ y cree una nueva configuraci贸n de host virtual llamada ‘awx’ usando el editor vim.

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

Ahora pegue la configuraci贸n a continuaci贸n.

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/;
}
}


Cambie el nombre de dominio y la direcci贸n IP de proxy_pass por los suyos, luego guarde y salga.

Ahora active el host virtual ‘awx’ y pruebe la configuraci贸n de nginx.

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

Proxy inverso Nginx para Ansible AWX

Aseg煤rese de que no haya ning煤n error con la configuraci贸n de nginx, luego reinicie el servicio de nginx.

sudo systemctl restart nginx

Como resultado, la instalaci贸n y configuraci贸n de Nginx como proxy inverso para awx ha finalizado.

Paso 6: configurar el cortafuegos UFW

Agregue los servicios SSH, HTTP y HTTPS a la configuraci贸n del firewall UFW.

ufw allow ssh
ufw allow http
ufw allow https

Ahora inicie y habilite el servicio de firewall ufw.

ufw enable

Escriba ‘y’ a s铆 y el firewall ufw se ha configurado.

Paso 7 – Prueba

Abra su navegador web y escriba su URL awx en la barra de direcciones.

https://awx.hakase-labs.io

Y se le mostrar谩 la p谩gina de inicio de sesi贸n de awx como se muestra a continuaci贸n.

Inicio de sesi贸n de Ansible AWX

Ahora escriba el usuario ‘hakase’ y la contrase帽a ‘hakasepass’, luego haga clic en el bot贸n ‘iniciar sesi贸n’.

Ahora obtiene el panel de administraci贸n de awx como se muestra a continuaci贸n.

Panel Ansible AWX

Y la instalaci贸n de Ansible AWX con el proxy inverso Nginx se complet贸 con 茅xito.

Deja una respuesta

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *