我正在尝试在所有节点上运行'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。所有节点都有不同的超级用户名
答案 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密码,但会并行运行。