web-dev-qa-db-ja.com

Ansibleのpipモジュールの実行中にPATHの前に追加するにはどうすればよいですか?

私はpsycopg2をPython virtualenv with Ansibleのpipモジュールにインストールしようとしていますが、正しく構築するには、PATHにエントリを追加する必要があります( pg_configを含むディレクトリへのパス)environmentpipモジュールに渡すことができることがわかりますが、PATH

ここでは、必要なディレクトリをパスの先頭に追加しようとしていますが、virtualenv PATHを上書きして失敗します。

- pip:
    name: psycopg2
    virtualenv: /path/to/my/venv
  environment:
    PATH: /usr/pgsql-9.3/bin:$PATH
18
Collin Allen

Ansible 1.4以降(推奨)を使用している場合は、remotePATH env変数にアクセスできます。

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

代わりに、local clientPATH env varに興味がある場合は、(対象のserverの代わりに)Ansibleスクリプトを実行します。次に、以下を実行します。

- 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