当我在工作站上使用刀子触发厨师 - 客户时,我在节点上运行chef-client时遇到问题。我在macOS上,我的节点也是macOS。一般来说,刀似乎对我有用,因为如果我执行,例如,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
现在,在通过chef-client
运行时,单独使用此完整路径而不是knife