Назад | Перейти на главную страницу

Как я могу добавить PATH при запуске модуля Ansible pip?

Я пытаюсь установить 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') }}