Table des matières

Python virtual environnement

Il est possible de proposer “plusieurs environnements virtuels Python”, intégrant des versions de Python et d'Ansible différentes.

Prérequis

Création de l'espace de stockage des venv

Nous créons cet espace dans /opt, et lui donnons les droits de l'utilisateur / groupe AWX

$ sudo -i
# mkdir /opt/custom-venv
# chmod 0755 /opt/custom-venv
# chown awx: /opt/custom-venv

Installation de Python Virtualenv

Nous installons Python 3.7 venv

# aptitude install python3-virtualenv

Nous configurons le proxy web pour pouvoir installer des modules Python via pip

# export https_proxy="http://proxy01.in.grohub.org:3128"

Préparation du venv

Création du virtual environnemment

Le profil est à adapter en fonction de la version de Python 3 installée sur le serveur

# python3 -m virtualenv /opt/custom-venv/ansible210 -p /usr/bin/python3.9

Ajout de l'emplacement dans la conf système

$ curl -k -X PATCH  --user 'user:passwd' 'https://awx.in.grohub.org/api/v2/settings/system/' -d '{"CUSTOM_VENV_PATHS": ["/opt/custom-venv/"]}'  -H 'Content-Type:application/json'

Note : il est possible de faire aussi l'opération via l'IHM (menu Paramètres > Système).

Installation des modules Python

Installation de psutil

Nous mettons à jour pip

# /opt/custom-venv/ansible210/bin/pip install --upgrade pip

Nous installons le module psutil

# /opt/custom-venv/ansible210/bin/pip install psutil

Installation d'Ansible

Nous installons Ansible

# /opt/custom-venv/ansible210/bin/pip install -U "ansible == 2.10.7"

Pourquoi je spécifie la version d'Ansible à installer ? Parce que sinon c'est la dernière version qui est installée (v4.x) qui est très différente des versions 2.x (nombre de fonctionnalités ont été placées dans des collections, et ne font plus partie du core). Pour connaître les versions voir sur pypi.

Post install

Enfin, nous mettons le bon user sur le répertoire du virtual envs

# chown -R awx: /opt/custom-venv/ansible210

Pour vérifier que le virtual env est pris en compte dans la configuration d'AWX

curl -k --user 'user:passwd' 'https://awx.in.grohub.org/api/v2/config/'

Liens