Python virtual environnement

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

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

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"

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
$ 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).

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

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/'
  • infrastructure/gestion-systeme/awx/python-venv.txt
  • Dernière modification : 23/02/2022 16:01
  • de Stéphane Paillet