Python 使Ansible能够使用非空壳环境
在执行临时命令或playbook时,我遇到了这样一种情况:需要读取sudoed/.bashrc的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”(下面是命令运行) 连接方
/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:
…