GNU/Linux >> Tutoriales Linux >  >> Ubuntu

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

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

Qué haremos:

  1. Instalar Docker y Ansible
  2. Instalar paquetes adicionales
  3. Descargar y configurar 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:instalar 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 completada la instalación, verifique la ventana acoplable y ansible con los siguientes comandos.

docker version
ansible --version

A continuación se muestra el resultado.

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

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 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 de 'inventario'.

vim inventory

Cambie 'postgres_data_dir' al directorio '/var/lib/pgdocker'.

postgres_data_dir=/var/lib/pgdocker

Cambie '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 usando 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 debajo está el resultado.

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.

Además, puede verificar los registros del servicio 'tarea' usando el siguiente comando.

docker-compose logs task

Paso 5:instalar y configurar 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

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 cortafuegos 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.

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.

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


Ubuntu
  1. Cómo implementar Modsecurity con Nginx en Ubuntu 20.04 LTS

  2. Cómo instalar Odoo 11 en Ubuntu 16.04 con Nginx como proxy inverso

  3. Cómo instalar Odoo 10 en Ubuntu 16.04 con Nginx como proxy inverso

  4. Cómo instalar Flectra en Ubuntu 20.04 con Nginx como proxy inverso

  5. Cómo instalar Odoo 12 en Ubuntu 18.04 con Nginx como proxy inverso

Cómo instalar GitBucket con Nginx en Ubuntu 20.04 LTS

Cómo instalar el servidor de aplicaciones Java WildFly con Nginx Reverse Proxy en Ubuntu 20.04

Cómo instalar nginx como proxy inverso para Apache en Ubuntu 16.04

Cómo instalar Rocket.chat con proxy inverso nginx en Ubuntu 20.04

Cómo instalar phpMyAdmin con Nginx (LEMP) en Ubuntu 18.04 LTS

Cómo instalar phpMyAdmin con Nginx en Ubuntu 20.04 LTS