"sudo: chef-client: command not found" 从工作站用刀执行时

"sudo: chef-client: command not found" when executed with knife from workstation

当我在我的工作站上使用 knife 触发 chef-client 时,我的节点上 运行ning chef-client 出现问题。我在 macOS 上,我的节点也是 macOS。一般来说,knife 似乎对我有用,因为如果我执行,例如,knife ssh tags:my-mac-mini' 'pwd' -x ‘myUser’ -a ipaddress -P ‘myPasswrod’ 它会连接到标记为 my-mac-mini 的节点,然后打印具有工作目录的节点列表。但是当我尝试执行 knife ssh tags:my-mac-mini' 'sudo chef-client' -x ‘myUser’ -a ipaddress -P ‘myPasswrod’ 时,它会分别为每个节点打印出 sudo: chef-client: command not found。此外,我的节点是自举的,当我登录到特定节点时,我可以在所有节点上 运行 chef-client。 我很确定我在我的设置中遗漏了一些东西,但我并没有真正理解可能是什么错误。有什么想法吗?

如果您正在执行命令的 shell 运行 路径中没有指定的二进制文件,就会发生这种情况。您可能必须指定二进制文件的完整路径。

既然你说你可以ssh进入你的节点和运行chef-client,运行下面获取二进制文件的完整路径

$ which chef-client

它的输出是这样的

/path/to/chef-client

现在,当 运行通过 knife

时,使用此完整路径而不是单独使用 chef-client