刀SSH找不到我的节点


12

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

# knife search node name:*
2 items found

Node Name:   web_01
...

Node Name:   admin
...

但是,当我运行knife ssh(我将使用“ debug”标志将其显示)时,我得到

# 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参数,并始终获得相同的结果。我试过了:

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

有任何想法吗?

Answers:


16

我想到了。我的节点没有fqdn。我必须指定-a ipaddress。错误消息没有帮助。我通过调试ssh ssh代码解决了。还有一个错误,它无法从刀具配置文件中读取属性。我将打开有关该问题的票证,也许会提交一个补丁。

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

10.3.3.100 Chef-client.int

当然,您也可以将其与其余节点一起也都放入DNS服务器。那将完全解决问题。


7
为了向其他读者阐明,“ -a ipaddress”是文字。它显然告诉knife ssh通过IP连接而不是FQDN。这种行为是愚蠢的-默认情况下应以这种方式回退。
史蒂夫·贝内特

@SteveBennett我同意这应该是默认行为。我知道我的帖子会令人困惑。感谢您的澄清。
2012年

4

另外,如果-a ipaddress无效,请尝试-a cloud.public_ipv4

在弄清楚knife ssh试图为我的节点使用内部IP地址之后,向我展示了此解决方案,并在厨师IRC频道(irc.freenode.net上的#chef)中提出了一些要求,然后有人叫retr0h向我展示了这一点


太好了,谢谢!@all(如果您正在运行ec2),并且您的实例是使用公共IP创建的,但是主机名指向本地主机,请使用以下命令:knife ssh 'name:mydc1*' interactive -a node.node_name
Ilja

0

尝试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"


1
感谢您的答复,但我押注id:*和name:*的“无节点”
2012年

好吧,那很奇怪(即对我有用)。我有时不得不踢厨师-solr才能使新对象显示在搜索中,但是,如果您从“刀搜索节点”获得结果,则应该得到“刀ssh”使用的相同节点列表。 。如果结果列表不同,我不知道接下来要去哪里。
cjc 2012年

0

你有没有尝试过knife ssh "name:*" "uptime"

我正在使用Chef 10.x,它对我有用。

我认为,使用时knife search [INDEX] [QUERY],第一个参数INDEX用于指定要查询的项目的类型。在使用knife ssh命令时,它知道您正在尝试搜索节点,因此您所要做的就是指定[QUERY]零件(name:*在您的情况下)。


我认为@cjc的答案是相同的。
ley 2013年

0

我通过使用ssh / config并通过fqdn连接来解决此问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.