[Ansible] Installation awx sur Ubuntu avec certificat ssl

 

Installation ansible awx avec certificat ssl sur Ubuntu
Article original Publié le : 16 octobre 2020
Mise a jour le :

Testé sur Ubuntu 20.04

Une interface graphique pour jouer les playbooks
L’avantage de cette interface est de pouvoir faire jouer les playbooks par une tierce personne avec des droits restreints ou pour soit même si on préfère au cli

 

 

Préparation de l’environnement

  • Mise a jour du système
$ sudo apt update
  • Installation des paquets nécessaires
$ sudo apt install apt-transport-https software-properties-common
  • Installation de paquet utile
$ sudo apt install vim wget pwgen
  • Installation du paquet ansible
$ sudo apt install ansible
  • Installation de docker
$ sudo apt install docker.io docker-compose

 

Un redémarrage s’impose avant le déploiement d’awx

$ sudo reboot

/!\ Au redémarrage vérifier que le service docker est bien démarré, le start et le passer a enable sinon

 

 

Déploiement d’awx

A présent cloner le repo awx

$ git clone https://github.com/ansible/awx.git

 

Générer un secret avec pwgen

$ pwgen 28 1

Remplacer le secret_key dans la properties inventory

$ vim awx/installer/inventory

On peut aussi changer les properties de db

Et en profiter pour changer le mot de passe admin avant installation

 

Enfin lancer le playbook d’installation

$ sudo ansible-playbook -i awx/installer/inventory awx/installer/install.yml
...
TASK [local_docker : Create ~/.awx/awxcompose directory] ************************************
changed: [localhost]

TASK [local_docker : Create Redis socket directory] *****************************************
changed: [localhost]

TASK [local_docker : Create Docker Compose Configuration] ***********************************
changed: [localhost] => (item={'file': 'environment.sh', 'mode': '0600'})
changed: [localhost] => (item={'file': 'credentials.py', 'mode': '0600'})
changed: [localhost] => (item={'file': 'docker-compose.yml', 'mode': '0600'})
changed: [localhost] => (item={'file': 'nginx.conf', 'mode': '0600'})
changed: [localhost] => (item={'file': 'redis.conf', 'mode': '0664'})

TASK [local_docker : Render SECRET_KEY file] ************************************************
changed: [localhost]

TASK [local_docker : Start the containers] **************************************************
changed: [localhost]

TASK [local_docker : Update CA trust in awx_web container] **********************************
changed: [localhost]

TASK [local_docker : Update CA trust in awx_task container] *********************************
changed: [localhost]

PLAY RECAP **********************************************************************************
localhost                  : ok=15   changed=4    unreachable=0    failed=0    skipped=91   rescued=0    ignored=0

 

L’installation est terminé, regardons coté docker ce qui as été généré

$ sudo docker images
REPOSITORY    TAG      IMAGE ID         CREATED         SIZE
ansible/awx   15.0.0   0e949d548ba2     11 days ago     1.29GB
postgres      10       e8abca8f194e     2 weeks ago     200MB
redis         latest   84c5f6e03bf0     4 weeks ago     104MB

$ sudo docker ps -a

CONTAINER ID  IMAGE                COMMAND                  CREATED             STATUS              PORTS         NAMES
68b71fbd91c7  ansible/awx:15.0.0   "/usr/bin/tini -- /u…"   41 minutes ago  Up 41 minutes  8052/tcp               awx_task
e8ac582c19b6  ansible/awx:15.0.0   "/usr/bin/tini -- /b…"   41 minutes ago  Up 41 minutes  0.0.0.0:80->8052/tcp   awx_web
aabaefaa9854  redis                "docker-entrypoint.s…"   42 minutes ago  Up 41 minutes  6379/tcp               awx_redis
82e87b891c5b  postgres:10          "docker-entrypoint.s…"   42 minutes ago  Up 41 minutes  5432/tcp               awx_postgres

 

 

Génération du certificat

Le serveur est opérationnel en http mais c’est toujours mieux de sécuriser ces accès avec de l’https surtout si on fait de l’authentification ldap
Pour l’exemple comme toujours j’utilise Let’s Encrypt
Ubuntu 20.04 intègre nativement Cerbot

$ sudo apt install certbot

Puis générer le certificat avec le nom de domaine (pensez a librerer les ports 80/443 et ouvrir les acces coté FW)

$ sudo certbot certonly --standalone -d awx.izero.fr

 

Une fois le certificat généré il faut concaténer la clé privé et le certificat vers un fichier bundle

$ sudo bash -c "cat /etc/letsencrypt/live/awx.izero.fr/privkey.pem /etc/letsencrypt/live/awx.izero.fr/cert.pem > /etc/letsencrypt/live/awx.izero.fr/awx-bundled-key.crt"

 

Maintenant on revient sur le fichier inventory pour ajouter le chemin du certificat dans la partie “Common Docker parameters”

$ vim awx/installer/inventory

 

Puis on rejoue le playbook d’installation, cela va surcharger les valeurs d’origines

$ sudo ansible-playbook -i awx/installer/inventory awx/installer/install.yml

 

Se connecter au navigateur avec le compte admin précédemment crée

 

 

 

No votes yet.
Please wait...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.