Comment installer Ansible AWX avec Nginx Reverse Proxy sur Ubuntu 18.04 LTS

AWX est une application Web open source qui fournit l’interface utilisateur, l’API REST et le moteur de tâches pour Ansible. C’est la version open source de la tour Ansible. L’AWX te permet de gérer les playbooks Ansible, les inventaires et de programmer l’exécution de tâches à l’aide de l’interface Web.

Dans ce tutoriel, nous allons te montrer comment installer et configurer l’AWX sur le serveur Ubuntu 18.04. Nous allons installer l’AWX avec Nginx comme proxy inverse et construit sur la connexion sécurisée HTTPS.

Prérequis

  • Serveur Ubuntu 18.04
  • Mémoire RAM +4 Go et 2 cœurs
  • Privilèges de racine

Ce que nous allons faire :

  1. Installer Docker et Ansible
  2. Installer les paquets supplémentaires
  3. Télécharger et configurer le code source d’Ansible AWX
  4. Installer Ansible AWX
  5. Installer et configurer Nginx comme Reverse Proxy
  6. Configurer le pare-feu UFW
  7. Tester

Étape 1 – Installer Docker et Ansible

Tout d’abord, nous allons installer les principaux paquets nécessaires à l’installation d’AWX, c’est-à-dire Docker et Ansible. Avant d’installer ces paquets, mets à jour le référentiel Ubuntu à l’aide de la commande suivante.

sudo apt update

Installe maintenant Docker et Ansible.

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

Une fois l’installation terminée, vérifie le Docker et l’Ansible à l’aide des commandes suivantes.

docker version
ansible --version

Tu trouveras ci-dessous le résultat.

Installe Docker

Étape 2 – Installer des paquets supplémentaires

Nous allons maintenant installer des paquets supplémentaires pour l’installation d’AWX. Nous allons installer le paquet ‘python-pip’ sur le système, puis installer docker-compose et docker-py à partir du dépôt python de PyPI.

Installe le paquet ‘python-pip’ à l’aide de la commande apt ci-dessous.

sudo apt install python-pip -y

Une fois l’installation terminée, installe les paquets docker-compose 1.9.0 et docker-py depuis le dépôt PyPI à l’aide des commandes pip ci-dessous.

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

Installer Python Pip

Ensuite, nous devons installer le nodejs et le npm sur le serveur.

Exécute la commande suivante.

sudo apt install nodejs npm -y

Une fois qu’elle est terminée, mets à jour le npm à la dernière version.

npm install npm --global

Et comme résultat, toutes les dépendances ont été installées sur le système. Et nous sommes prêts à installer l’AWX.

Étape 3 – Télécharger le code source de l’AWX et le configurer

Dans cette étape, nous allons télécharger le code source de l’AWX et configurer le fichier d’inventaire pour l’installation de l’AWX.

Télécharge le code source de l’AWX depuis le dépôt git et va dans le répertoire d’installation de l’AWX.

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

Ensuite, génère la nouvelle clé secrète pour l’awx à l’aide de la commande openssl ci-dessous.

openssl rand -hex 32

Copie la clé secrète générée dans ta note.

Maintenant, édite le fichier de configuration ‘inventory’.

vim inventory

Remplace le répertoire ‘postgres_data_dir’ par le répertoire ‘/var/lib/pgdocker’.

postgres_data_dir=/var/lib/pgdocker

Change le paramètre ‘host_port’ en ‘8080’.

host_port=8080

Décommente la ligne ‘use_docker_compose’ et change la valeur en ‘true’, car nous allons gérer l’awx en utilisant le docker compose.

use_docker_compose=true

Assure-toi maintenant que le ‘docker_compose_dir’ se trouve dans le répertoire ‘/var/lib/awx’.

docker_compose_dir=/var/lib/awx

Change les informations d’identification de ‘pg_password’, ‘rabbitmq_password’, ‘rabbitmq_erlang_cookie’, ‘admin_user’ et ‘admin_password’ avec tes propres informations d’identification de mot de passe.

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

Après cela, modifie la clé secrète de la configuration awx en utilisant la clé générée en haut.

secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33

Puis décommente le ‘project_data_dir’ et laisse la valeur par défaut.

project_data_dir=/var/lib/awx/projects

Sauvegarde et ferme la configuration.

Voici l’édition du fichier ‘inventory’.

grep -v '^#' inventory

Le fichier deconfiguration de l’ inventaire.

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

Et comme résultat, nous sommes prêts à installer l’awx à l’étape suivante.

Étape 4 – Installe l’AWX d’Ansible

Installe l’awx à l’aide de la commande ansible-playbook suivante.

ansible-playbook -i inventory install.yml

Le playbook effectuera certaines tâches, notamment le téléchargement des images docker et la création de nouveaux conteneurs postgresql, memcached, rabbitmq, l’application web awx et la tâche awx.

Et voici le résultat.

Playbook Ansible

Ensuite, va dans le répertoire ‘/var/lib/awx’ et tu obtiendras la configuration ‘docker-compose.yml’. Vérifie ensuite tous les conteneurs docker disponibles à l’aide de la commande docker-compose.

cd /var/lib/awx
docker-compose ps

Et tu verras apparaître les conteneurs awx comme ci-dessous.

AWX Container

En outre, tu peux vérifier les journaux du service ‘task’ à l’aide de la commande suivante.

docker-compose logs task

Étape 5 – Installe et configure Nginx comme proxy inverse

Après avoir installé l’awx, nous allons installer et configurer Nginx comme proxy inverse pour l’awx qui exécute le port ‘8080’.

Installe Nginx à l’aide de la commande apt suivante.

sudo apt install nginx -y

Une fois l’installation terminée, va dans le répertoire ‘/etc/nginx/sites-available/’ et crée une nouvelle configuration d’hôte virtuel appelée ‘awx’ en utilisant l’éditeur vim.

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

Colle maintenant la configuration ci-dessous.

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

Change le nom de domaine et l’adresse IP proxy_pass avec les tiens, puis enregistre et quitte.

Active maintenant l’hôte virtuel ‘awx’ et teste la configuration de nginx.

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

Nginx Reverse Proxy pour Ansible AWX

Assure-toi qu’il n’y a pas d’erreur dans la configuration de nginx, puis redémarre le service nginx.

sudo systemctl restart nginx

L’installation et la configuration de Nginx en tant que proxy inverse pour awx sont terminées.

Étape 6 – Configurer le pare-feu UFW

Ajoute les services SSH, HTTP et HTTPS à la configuration du pare-feu UFW.

ufw allow ssh
ufw allow http
ufw allow https

Maintenant, démarre et active le service de pare-feu ufw.

ufw enable

Tape ‘y’ pour oui et le pare-feu ufw a été configuré.

Étape 7 – Test

Ouvre ton navigateur Web et tape ton URL awx dans la barre d’adresse.

https://awx.hakase-labs.io

Et tu verras apparaître la page de connexion awx comme ci-dessous.

Connexion Ansible AWX

Tape maintenant l’utilisateur ‘hakase’ et le mot de passe ‘hakasepass’, puis clique sur le bouton ‘sign in’.

Tu obtiens maintenant le tableau de bord d’administration d’awx comme ci-dessous.

Tableau de bord Ansible AWX

Et l’installation d’Ansible AWX avec le proxy inverse Nginx a été effectuée avec succès.

Référence

https://github.com/ansible/awx

Vous aimerez aussi...