如何使Ansible读取路径变量?

如何使Ansible读取路径变量?,ansible,Ansible,我在我的~/bin中有一些脚本,它们是在启动shell时加载的,因为这些脚本已包含在我的$PATH中。但是,如果Ansible playbook中有一个任务试图执行其中一个脚本,它将失败: fatal: [node3]: FAILED! => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"}, "changed": true, "cmd": "nodetool status", "delta":

我在我的
~/bin
中有一些脚本,它们是在启动shell时加载的,因为这些脚本已包含在我的
$PATH
中。但是,如果Ansible playbook中有一个任务试图执行其中一个脚本,它将失败:

fatal: [node3]: FAILED! => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"}, "changed": true, "cmd": "nodetool status", "delta": "0:00:00.002779", "end": "2019-12-03 00:17:18.595695", "msg": "non-zero return code", "rc": 127, "start": "2019-12-03 00:17:18.592916", "stderr": "/bin/sh: 1: nodetool: not found", "stderr_lines": ["/bin/sh: 1: nodetool: not found"], "stdout": "", "stdout_lines": []}
在这种情况下,脚本是
~/bin/nodetool
。如果我给Ansible提供了绝对路径,它就可以工作,所以我猜Ansible没有加载
$path

如何强制Ansible加载
$PATH
环境变量,以便在不提供完整路径的情况下访问这些脚本?

根据OP的请求将注释转换为应答


我猜您的路径是在您的.bashrc中设置的,在运行shell时,ansible没有加载它


在一个会议上有一个讨论,解释了为什么会出现这种情况。您需要全局安装这些命令,或
source.bashrc&&command
,或全局设置路径……

我猜您的路径是在运行shell时ansible未加载的
.bashrc
中设置的。在解释为什么会出现这种情况时进行了讨论。您需要全局安装这些命令,或者source
source.bashrc&&command
,或者全局设置路径……@Zeitounator好吧,我想这样就可以了……:(您可以将此设置为答案,我将标记它。谢谢。