当前位置 : 主页 > 网络安全 > 测试自动化 >

自动化 – 如何在运行Ansible的pip模块时预先添加到PATH?

来源:互联网 收集:自由互联 发布时间:2021-06-19
我正在尝试使用Ansible的pip模块将psycopg2安装到 Python virtualenv中,但是我需要在PATH前面添加一个条目才能正确构建(它需要知道包含pg_config的目录的路径).我看到我可以将环境传递给pip模块
我正在尝试使用Ansible的pip模块将psycopg2安装到 Python virtualenv中,但是我需要在PATH前面添加一个条目才能正确构建(它需要知道包含pg_config的目录的路径).我看到我可以将环境传递给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 }}

如果您对运行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') }}
网友评论