web-dev-qa-db-fra.com

Comment puis-je adopter un chemin en exécutant le module PIP d'Ansible?

Je tente d'installer psycopg2 dans un Python Virtualenv avec le module pip [$ Var], mais je dois préparer une entrée à la piste à la construction correctement (elle doit connaître le chemin vers le répertoire contenant pg_config). Je vois que je peux passer environment au module pip, mais je ne suis pas sûr de la compréhension plutôt que de remplacer PATH.

Ici, je tente de préparer 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
18
Collin Allen

Si vous utilisez une ansile 1.4 ou une version ultérieure (que je vous recommande), vous pouvez accéder à la variable RemotePATH env variable:

- pip: name=psycopg2 virtualenv=/path/to/my/venv
  environment:
    PATH: /usr/pgsql-9.3/bin:{{ ansible_env.PATH }}

Si, au lieu de cela, vous êtes intéressé par le fichier PATH env Var du Client local exécutant les scripts ansibles (au lieu du serveur ciblé ), alors vous voulez faire ce qui suit:

- pip: name=psycopg2 virtualenv=/path/to/my/venv
  environment:
    # This only makes sense if your client and server are homogeneous, that is,
    # they have the same PATHs.
    PATH: /usr/pgsql-9.3/bin:{{ lookup('env', 'PATH') }}
34
Rico