2

我正在尝试在所有节点上运行“sudo chef-client”。为此,我正在尝试运行命令:

sudo knife ssh name:* 'sudo chef-client'

但与机器连接出错

警告:无法连接到 -- Net::SSH::AuthenticationFailed: *chef_workstation_user_name*@*node_name*

节点是本地网络中的真实机器。我已经通过运行注册了节点

sudo 刀引导 node_ip_address -x node_name -P node_pass --sudo

当我跑步时

sudo knife ssh name:node_name -x node_user -P node_pass 'sudo chef-client'

它仍然询问本地机器(节点)的密码,然后以超级用户权限运行 chef-client。

所以问题是如何在我的情况下在所有节点上运行“sudo chef-client”?

PS 所有节点都有不同的超级用户名

4

4 回答 4

0

尝试

sudo knife ssh 'name:*' 'sudo chef-client'代替

sudo knife ssh name:* 'sudo chef-client'

于 2013-09-18T08:47:12.230 回答
0

指定要连接到实例的用户,如-x。例如。

sudo knife ssh 'name:*' 'sudo chef-client' -x ubuntu
于 2014-07-31T16:01:45.403 回答
0

我有相同的超级用户并尝试了以下工作正常。将用户名和密码与刀 ssh一起作为参数提供, 即

刀 ssh -x 用户名 -P 密码 'name: ' 'sudo chef-client'*

knife ssh -x root -P qwerty 'name:*' 'sudo chef-client'
于 2018-10-08T09:05:08.050 回答
0

根据在 chef-server 上注册的内容,将完全限定名称(或节点名称)添加到运行命令的系统的 hosts 文件中后,该命令按预期工作。(/etc/hosts在 linux 和 *nix 系统上。DNS 可以/应该也可以工作,尚未使用 DNS 进行测试)。

也就是说,chef-workstation 主机文件应该包含在 chef-server 上注册的所有节点的 IP 地址和完全限定名称,并且能够 ping 这些地址。环顾一番后,事实证明“knife ssh”命令将到达服务器以查询所有节点 -> 接收作为 FQDN 的地址列表,然后 -> 对作为 FQDN 接收的地址执行命令(不是IP 地址)。工作站应该能够解析这些 FQDN。

sudo knife ssh '*:*' "sudo chef-client"

它会一个接一个地询问您每个节点的 sudo 密码,但会并行运行。

于 2020-11-17T23:49:42.303 回答