Python 使Ansible能够使用非空壳环境

Python 使Ansible能够使用非空壳环境,python,python-2.7,ansible,ansible-2.x,Python,Python 2.7,Ansible,Ansible 2.x,在执行临时命令或playbook时,我遇到了这样一种情况:需要读取sudoed/.bashrc的/home/user中的ENV变量,以便临时命令或playbook在目标资源清册主机上工作。在这个.bashrc文件中,我们设置了LD\u LIBRARY\u PATH(对于我们正在使用的一些Python函数是必需的) /home/local user/.ansible.cfg中是否有一个参数可以有效地将“/bin/sh-c”转换为“/bin/sh”而不使用“-c”?“-c”(下面是命令运行) 连接方

在执行临时命令或playbook时,我遇到了这样一种情况:需要读取sudoed/.bashrc的
/home/user中的ENV变量,以便临时命令或playbook在目标资源清册主机上工作。在这个
.bashrc
文件中,我们设置了
LD\u LIBRARY\u PATH
(对于我们正在使用的一些Python函数是必需的)

/home/local user/.ansible.cfg
中是否有一个参数可以有效地将“
/bin/sh-c
”转换为“
/bin/sh
”而不使用“
-c
”?“
-c
”(下面是命令运行)


连接方式为“
user@controller
user@inventory_host
,然后
user@inventory_host
正在成为“
用户,该用户允许使用
环境
关键字为单个任务设置环境变量

示例

- hosts: all

  tasks:
    - shell: /opt/local/my-binary
      environment:
        LD_LIBRARY_PATH: /opt/my/dir/
或者也可以为剧本设置
环境

- hosts: all

  environment:
    LD_LIBRARY_PATH: /opt/my/dir/

  tasks:
    …
因此,这样做比按你提议的方式去做要好

希望能有帮助


官方文档:

ansible的临时命令行用法与此有何等效之处?这是不可能的,我没有注意到您想要执行临时命令。谢谢,我是一个使用RTFM的用户,我能够让一切正常工作。我刚刚用“rpath”重新编译了Python,一切都很好。
- hosts: all

  environment:
    LD_LIBRARY_PATH: /opt/my/dir/

  tasks:
    …