Я пытаюсь установить psycopg2 в виртуальный Python Python с помощью 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 или новее (что я рекомендую), вы можете получить доступ к удаленный PATH
переменная env:
- pip: name=psycopg2 virtualenv=/path/to/my/venv
environment:
PATH: /usr/pgsql-9.3/bin:{{ ansible_env.PATH }}
Если вместо этого вас интересует PATH
env var из местный клиент запускать скрипты 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') }}