小编Pre*_*zel的帖子

为什么“ansible -a“env””返回的环境路径与我的用户不同?

当我通过 ssh 进入远程服务器并运行时,env我返回以下路径:

PATH=/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/myusername/bin
Run Code Online (Sandbox Code Playgroud)

相反,当我执行 ansible 命令时ansible -a "env",我得到以下路径:

PATH=/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin
Run Code Online (Sandbox Code Playgroud)

可以想象,试图运行时,这会导致问题 sbin类似的命令servicentpdate等等,因为它需要打字的完整路径sbin目录命令。(是的,我知道有 ansible 模块可以做到这一点,但我正在尝试解决 PATH 被缩短/截断的原因。)

有谁知道为什么会这样?

编辑:我问这个的原因是我正在按照书中的例子进行操作,Ansible for DevOps并且由于这个原因,一些例子不起作用。

我试图开始工作的例子来自本书的第 28 页:

$ ansible multi -s -a "service ntpd stop"
$ ansible multi -s -a "ntpdate -q 0.rhel.pool.ntp.org"
$ ansible multi -s -a "service ntpd start"
Run Code Online (Sandbox Code Playgroud)

这些命令总是会引发错误。但是如果我将它们更改为包含完整路径,它们就可以工作。

$ ansible multi -s -a "/sbin/service ntpd stop"
$ ansible multi -s -a "/usr/sbin/ntpdate -q 0.rhel.pool.ntp.org"
$ ansible multi -s -a …
Run Code Online (Sandbox Code Playgroud)

environment-variables path ansible

5
推荐指数
2
解决办法
4841
查看次数

标签 统计

ansible ×1

environment-variables ×1

path ×1