knife ssh
没有find我的节点。 我知道它应该能够,因为当我可以search他们时,我发现他们
# knife search node name:* 2 items found Node Name: web_01 ... Node Name: admin ...
但是,当我运行knife ssh
(我将显示与“debugging”标志),我得到
# 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参数并始终得到相同的结果。 我试过了:
有任何想法吗?
我想到了。 我的节点没有fqdn。 我必须指定-a ipaddress
。 该错误消息是没有帮助的。 我通过debugging刀ssh代码来解决这个问题。 还有一个bug,它不会读取刀configuration文件的属性。 我要打开关于这个问题的票,也许提交一个补丁。
我所做的是通过指向IP地址的指针将主节点的主机名放在我的/ etc / hosts文件中。 例如:
10.3.3.100 chef-client.int
当然,你也可以把它和其他的节点一起放到DNS服务器上。 这将完全解决这个问题。
另外,如果-a ipaddress
不起作用,请尝试-a cloud.public_ipv4
我find了这个解决scheme后,找出knife ssh
试图为我的节点使用内部IP地址,并且在主厨IRC频道(irc.freenode.net上的#chef)之前, 有人叫retr0h告诉我这个问题 。
尝试knife ssh "id:*" "uptime"
。
请记住, knife ssh
本质上是一个knife search node
,所以你的查询应该是一个knife search node
(即knife search node "node:*"
不起作用)。 knife ssh "role:*"
也应该工作,但只有当你的节点有angular色分配给他们。 对于这个问题,原来的knife search node "name:*"
也应该工作,当你重新使用knife ssh
的查询。 所以, knife ssh "name:*" "uptime"
。
你有没有试过knife ssh "name:*" "uptime"
?
我使用厨师10.x,它适用于我。
在我看来,使用knife search [INDEX] [QUERY]
,第一个参数INDEX
用于指定要查询的项目的types。 在使用knife ssh
命令时,它知道您正在尝试search节点,所以您只需指定[QUERY]
部分,即name:*
。
我通过使用ssh / config和fqdn连接解决了这个问题。