Knife SSH 找不到我的节点

Knife SSH 找不到我的节点

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

# knife search node name:*
2 items found

Node Name:   web_01
...

Node Name:   admin
...

然而,当我运行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!

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

我尝试修改 QUERY 参数,但总是得到相同的结果。我尝试过:

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

有任何想法吗?

答案1

我搞明白了。我的节点没有 fqdn。我必须指定-a ipaddress。错误消息没有帮助。我通过调试 knife ssh 代码解决了这个问题。还有一个错误,它没有从 knife 配置文件中读取属性。我将开具一张关于此问题的票据,也许会提交补丁。

为了解决这个问题,我把 chef 节点的主机名放在我的 /etc/hosts 文件中,并附上指向 IP 地址的指针。例如:

10.3.3.100 chef-客户端.int

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

答案2

另外,如果-a ipaddress不行,请尝试-a cloud.public_ipv4

在弄清楚knife ssh尝试使用内部 IP 地址作为我的节点后,我得到了这个解决方案,并在 chef IRC 频道(irc.freenode.net 上的 #chef)中询问了一些问题后一个叫 retr0h 的人给我看了这个

答案3

尝试knife ssh "id:*" "uptime"

请记住,knife ssh本质上执行的是knife search node,因此您的查询应该是对 有效的查询knife search node(即,knife search node "node:*"不起作用)。 knife ssh "role:*"也应该有效,但前提是您的节点已分配角色。 就此而言,一旦您将查询重新用于 ,您的原始查询knife search node "name:*"也应该有效knife ssh。 因此,knife ssh "name:*" "uptime"

答案4

我通过使用 ssh/config 并通过 fqdn 连接解决了这个问题。

相关内容