GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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 vous permet de gérer les playbooks Ansible, les inventaires et de planifier les tâches à exécuter à l'aide de l'interface Web.

Dans ce tutoriel, nous allons vous montrer comment installer et configurer l'AWX sur le serveur Ubuntu 18.04. Nous allons installer l'AWX avec Nginx en tant que 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 root

Ce que nous allons faire :

  1. Installer Docker et Ansible
  2. Installer des packages supplémentaires
  3. Télécharger et configurer le code source Ansible AWX
  4. Installer Ansible AWX
  5. Installer et configurer Nginx en tant que proxy inverse
  6. Configurer le pare-feu UFW
  7. Test

Étape 1 - Installer Docker et Ansible

Premièrement, nous allons installer les principaux packages nécessaires à l'installation d'AWX, c'est le Docker et Ansible lui-même. Avant d'installer ces packages, mettez à jour le référentiel Ubuntu à l'aide de la commande suivante.

sudo apt update

Installez maintenant Docker et Ansible.

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

Une fois l'installation terminée, vérifiez le docker et ansible à l'aide des commandes suivantes.

docker version
ansible --version

Ci-dessous le résultat.

Étape 2 - Installer des packages supplémentaires

Nous allons maintenant installer des packages supplémentaires pour l'installation d'AWX. Nous allons installer le package 'python-pip' sur le système, puis installer docker-compose et docker-py à partir du référentiel python PyPI.

Installez le 'python-pip' en utilisant la commande apt ci-dessous.

sudo apt install python-pip -y

Une fois l'installation terminée, installez les packages docker-compose 1.9.0 et docker-py à partir du référentiel PyPI à l'aide des commandes pip ci-dessous.

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

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

Exécutez la commande suivante.

sudo apt install nodejs npm -y

Une fois terminé, mettez à niveau le npm vers la dernière version.

npm install npm --global

Et par conséquent, toutes les dépendances ont été installées sur le système. Et nous sommes prêts à installer l'AWX.

Étape 3 - Téléchargez le code source AWX et configurez

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

Téléchargez le code source AWX à partir du référentiel git et accédez au répertoire d'installation awx.

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

Après cela, générez la nouvelle clé secrète pour l'awx à l'aide de la commande openssl ci-dessous.

openssl rand -hex 32

Copiez la clé secrète générée dans votre note.

Modifiez maintenant le fichier de configuration 'inventaire'.

vim inventory

Remplacez le 'postgres_data_dir' par le répertoire '/var/lib/pgdocker'.

postgres_data_dir=/var/lib/pgdocker

Changez le 'host_port' en '8080'.

host_port=8080

Décommentez la ligne 'use_docker_compose' et changez la valeur en 'true', car nous allons gérer l'awx en utilisant le docker compose.

use_docker_compose=true

Assurez-vous maintenant que le 'docker_compose_dir' se trouve dans le répertoire '/var/lib/awx'.

docker_compose_dir=/var/lib/awx

Modifiez les identifiants pour 'pg_password', 'rabbitmq_password', 'rabbitmq_erlang_cookie', 'admin_user' et 'admin_password' avec vos propres identifiants de mot de passe.

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

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

secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33

Ensuite, décommentez le 'project_data_dir' et laissez la valeur par défaut.

project_data_dir=/var/lib/awx/projects

Enregistrez et fermez la configuration.

Ci-dessous l'édition du fichier 'inventaire'.

grep -v '^#' inventory

fichier de configuration d'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 par conséquent, nous sommes prêts à installer l'awx à l'étape suivante.

Étape 4 - Installer Ansible AWX

Installez 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 d'images docker et la création de nouveaux conteneurs postgresql, memcached, rabbitmq, l'application Web awx et la tâche awx.

Et ci-dessous le résultat.

Ensuite, allez dans le répertoire '/var/lib/awx' et vous obtiendrez la configuration 'docker-compose.yml'. Vérifiez ensuite tous les conteneurs docker disponibles à l'aide de la commande docker-compose.

cd /var/lib/awx
docker-compose ps

Et vous verrez les conteneurs awx comme ci-dessous.

De plus, vous pouvez vérifier les journaux du service 'task' à l'aide de la commande suivante.

docker-compose logs task

Étape 5 - Installer et configurer Nginx en tant que proxy inverse

Après avoir installé l'awx, nous allons installer et configurer le Nginx en tant que proxy inverse pour l'awx qui exécute le port '8080'.

Installez Nginx à l'aide de la commande apt suivante.

sudo apt install nginx -y

Une fois l'installation terminée, accédez au répertoire '/etc/nginx/sites-available/' et créez une nouvelle configuration d'hôte virtuel appelée 'awx' à l'aide de l'éditeur vim.

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

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

Changez le nom de domaine et l'adresse IP proxy_pass avec les vôtres, puis enregistrez et quittez.

Activez maintenant l'hôte virtuel 'awx' et testez la configuration nginx.

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

Assurez-vous qu'il n'y a pas d'erreur avec la configuration de nginx, puis redémarrez le service nginx.

sudo systemctl restart nginx

En conséquence, l'installation et la configuration de Nginx en tant que proxy inverse pour awx sont terminées.

Étape 6 - Configurer le pare-feu UFW

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

ufw allow ssh
ufw allow http
ufw allow https

Maintenant, démarrez et activez le service de pare-feu ufw.

ufw enable

Tapez 'y' pour oui et le pare-feu ufw a été configuré.

Étape 7 - Tester

Ouvrez votre navigateur Web et saisissez votre URL awx dans la barre d'adresse.

https://awx.hakase-labs.io

Et vous verrez la page de connexion awx comme ci-dessous.

Tapez maintenant l'utilisateur 'hakase' et le mot de passe 'hakasepass', puis cliquez sur le bouton 'se connecter'.

Vous obtenez maintenant le tableau de bord d'administration awx comme ci-dessous.

Et l'installation d'Ansible AWX avec le proxy inverse Nginx s'est terminée avec succès.


Ubuntu
  1. Comment déployer Modsecurity avec Nginx sur Ubuntu 20.04 LTS

  2. Comment installer Odoo 11 sur Ubuntu 16.04 avec Nginx en tant que proxy inverse

  3. Comment installer Odoo 10 sur Ubuntu 16.04 avec Nginx en tant que proxy inverse

  4. Comment installer Odoo sur Ubuntu 20.04 avec Nginx en tant que proxy inverse

  5. Comment installer Odoo 12 sur Ubuntu 18.04 avec Nginx en tant que proxy inverse

Comment installer GitBucket avec Nginx sur Ubuntu 20.04 LTS

Comment installer WildFly Java Application Server avec Nginx Reverse Proxy sur Ubuntu 20.04

Comment installer nginx en tant que proxy inverse pour Apache sur Ubuntu 16.04

Comment installer Rocket.chat avec le proxy inverse nginx sur Ubuntu 20.04

Comment installer phpMyAdmin avec Nginx (LEMP) sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Nginx sur Ubuntu 20.04 LTS