J'essaie d'installer psycopg2 dans un virtualenv Python avec le pip
module d'Ansible , mais je dois ajouter une entrée à PATH pour qu'il se construise correctement (il doit connaître le chemin d'accès au répertoire contenant pg_config
). Je vois que je peux passer environment
au pip
module, mais je ne suis pas sûr de la manière de préfixer plutôt que d'écraser PATH
.
Ici, j'essaie d'ajouter le chemin avec le répertoire nécessaire, mais il écrase le virtualenv PATH
et échoue:
- pip:
name: psycopg2
virtualenv: /path/to/my/venv
environment:
PATH: /usr/pgsql-9.3/bin:$PATH
la source
ansible_env.PATH
option était ce dont j'avais besoin - fonctionnait parfaitement. Merci!~/bin
, utilisezPATH: "{{ansible_env.HOME}}/bin:{{ansible_env.PATH}}"
. Si vous utilisez à la placePATH: "~/bin:{{ansible_env.PATH}}"
, certains programmes (tels que Pythonshutil.which
) ne peuvent pas utiliser ce composant.ansible_env
fait référence à l'environnement de l'utilisateur SSH, pas à l'sudo
environnement.ansible_env.USER
peut donc entraînerroot
plutôt qu'un utilisateur non privilégié.