错误运行刀ssh名称:*'sudo chef-client'

时间:2013-09-18 08:28:28

标签: ssh chef knife

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

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

但是与机器的连接出错

  

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

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

注册了节点
  

sudo knife bootstrap 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'?

P.S。所有节点都有不同的超级用户名

4 个答案:

答案 0 :(得分:0)

尝试

sudo knife ssh 'name:*' 'sudo chef-client'而不是

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我具有相同的超级用户,并尝试了以下正常工作的方法。 输入用户名和密码以及 knife ssh

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

knife ssh -x root -P qwerty 'name:*' 'sudo chef-client'

答案 3 :(得分:0)

将完全限定名称(或节点名称)添加到根据厨师服务器上注册的命令运行的系统的主机文件中后,命令按预期工作。 (在Linux和* nix系统上,/etc/hosts。DNS可以/应该也可以使用,未经DNS测试)。

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

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

它将要求您一个接一个地输入每个节点的sudo密码,但会并行运行。