Col*_*len 20 automation ansible
我正在尝试使用 Ansible 的pip
模块将 psycopg2 安装到 Python virtualenv 中,但我需要在 PATH 前面添加一个条目才能正确构建(它需要知道包含 的目录的路径pg_config
)。我看到我可以传递environment
给pip
模块,但我不确定如何添加而不是覆盖PATH
。
在这里,我试图在路径前面加上必要的目录,但它覆盖了 virtualenvPATH
并失败了:
- pip:
name: psycopg2
virtualenv: /path/to/my/venv
environment:
PATH: /usr/pgsql-9.3/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
小智 36
如果您使用 Ansible 1.4 或更高版本(我推荐),您可以访问远程环境 PATH
变量:
- pip: name=psycopg2 virtualenv=/path/to/my/venv
environment:
PATH: /usr/pgsql-9.3/bin:{{ ansible_env.PATH }}
Run Code Online (Sandbox Code Playgroud)
相反,如果您对运行 Ansible 脚本PATH
的本地客户端(而不是目标服务器)的env var感兴趣,那么您需要执行以下操作:
- 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') }}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15555 次 |
最近记录: |