Knife SSH 找不到我的节点

Max*_*Max 13 chef knife

knife ssh没有找到我的节点。我知道它应该可以,因为当我可以搜索它们时,我会找到它们

# knife search node name:*
2 items found

Node Name:   web_01
...

Node Name:   admin
...
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时knife ssh(我会用“调试”标志显示它)我得到

# knife ssh "node:*" "uptime" -VV
DEBUG: Using configuration from /root/.chef/knife.rb
DEBUG: Signing the request as dev
DEBUG: Sending HTTP Request via GET to ec2-xx-xx-xx-xx.compute-1.amazonaws.com:4000/search/node
FATAL: No nodes returned from search!
Run Code Online (Sandbox Code Playgroud)

(是的,主持人是正确的,我只是为帖子审查了它)。

我试过修改 QUERY 参数并且总是得到相同的结果。我试过了:

  • 节点:*
  • 角色:*
  • *
  • *:*

有任何想法吗?

Max*_*Max 16

我想到了。我的节点没有 fqdn。我必须指定-a ipaddress. 错误消息没有帮助。我通过调试knife ssh 代码弄清楚了。还有一个错误,它不会从刀配置文件中读取属性。我要开一张关于这个问题的票,也许会提交一个补丁。

我所做的就是在我的 /etc/hosts 文件中放置了 Chef 节点的主机名,并带有一个指向 IP 地址的指针。例如:

10.3.3.100 厨师客户端.int

当然,您也可以始终将其与其他节点一起放入 DNS 服务器。这样才能彻底解决问题。

  • 为了向其他读者澄清,“`-a ipaddress`”是字面意思。它显然告诉 `knife ssh` 通过 IP 而不是 FQDN 连接。这种行为是愚蠢的 - 默认情况下它应该以这种方式回退。 (7认同)