"致命:没有从搜索返回的节点!"使用SSH搜索或访问节点时

时间:2013-09-02 11:57:48

标签: chef knife

我正在使用EC2来创建实例。

当我运行knife node list时,我可以看到所有节点

NodeA,
NodeB,
NodeC

当我尝试搜索NodeC时,它会给我一条错误消息

FATAL: No nodes returned from search!

当我尝试使用SSH访问同一节点NodeC时,我收到同样的错误。

$ knife search node name:NodeC
FATAL: No nodes returned from search!

但是当我运行knife node list时,我可以在列表中看到NodeC

即使我运行knife search node:,它也会显示除NodeC

以外的所有节点

有人可以提出解决方案吗?

3 个答案:

答案 0 :(得分:1)

NodeC是否成功完成了chef-client的运行?如果不是这种情况可以解释为什么您没有看到knife-search中的任何内容,则不会将最新的属性集上载到Chef服务器。

答案 1 :(得分:0)

我也遇到过这个问题。 knife node list将返回服务器名称,但尝试使用服务器名称运行knife命令会导致FATAL: No nodes returned from search!错误。我不知道究竟是什么导致了这个问题,但似乎有些东西还没有在厨师服务器上完全注册,需要更多的时间。直到最近我还没有看到这种行为。也许在Chef 11中发生了一些变化。无论如何我最终做的就是在while循环中将我的第一个knife ssh命令放在我的构建脚本中。它只是一直在尝试,直到命令成功。有时它会在第一次尝试时起作用,有时我看到它需要三次尝试。可能应该添加一个计数器,以便在经过一些尝试后退出。这是我正在使用的bash代码:

echo "Waiting until the knife utility can run apt-get successfully on the remote server."
while true
do
    knife ssh "name:${SERVERNAME}" "sudo apt-get update" -i sshkey.pem -x ubuntu --yes
    CMDSTATUS=$?
    echo STATUS: $CMDSTATUS
    if [ $CMDSTATUS -eq 0 ]
    then
       echo "knife ssh command was successful. Continuing"
       break
    fi
    echo "knife ssh command failed. Will try again."
    echo "Sleeping 15 seconds..."
    sleep 15
done

答案 2 :(得分:0)

使用winrm运行chef-client时发生类似的错误消息: knife winrm ADDRESS chef-client --manual-list --winrm-user USER --winrm-password'PASSWORD' 问题是(可能是我)我已经两次引导服务器并在两者之间更新了一些烹饪书。再次bootrtapping服务器并运行命令