私はpsycopg2をPython virtualenv with Ansibleのpip
モジュールにインストールしようとしていますが、正しく構築するには、PATHにエントリを追加する必要があります( pg_config
を含むディレクトリへのパス)environment
をpip
モジュールに渡すことができることがわかりますが、PATH
。
ここでは、必要なディレクトリをパスの先頭に追加しようとしていますが、virtualenv PATH
を上書きして失敗します。
- pip:
name: psycopg2
virtualenv: /path/to/my/venv
environment:
PATH: /usr/pgsql-9.3/bin:$PATH
Ansible 1.4以降(推奨)を使用している場合は、remotePATH
env変数にアクセスできます。
- pip: name=psycopg2 virtualenv=/path/to/my/venv
environment:
PATH: /usr/pgsql-9.3/bin:{{ ansible_env.PATH }}
代わりに、local clientのPATH
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') }}