3

我正在使用 EC2 创建实例。

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

NodeA,
NodeB,
NodeC

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

FATAL: No nodes returned from search!

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

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

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

即使我运行knife search node:,它也会显示所有节点,除了NodeC

任何人都可以提出解决方案吗?

4

3 回答 3

1

NodeC 是否已成功运行chef-client?如果不是这种情况,则不会将最新的属性集上传到 Chef 服务器,这可以解释为什么您没有从knife-search.

于 2013-09-02T20:45:02.857 回答
0

我也遇到了这个问题。knife node list将返回服务器名称,但尝试使用服务器名称运行刀命令会出错FATAL: No nodes returned from search!。我不知道究竟是什么导致了问题,但似乎某些东西还没有在厨师服务器上完全注册,需要更多时间。直到最近我才看到这种行为。Chef 11 中可能发生了一些变化。无论如何,我最终所做的是将我的第一个knife ssh命令放在我的构建脚本中的一个 while 循环中。它只是不断尝试,直到命令成功。有时它在第一次尝试时起作用,而其他时候我看到它需要三次尝试。可能应该添加一个计数器,以便在多次尝试后退出。这是我正在使用的 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
于 2014-04-28T02:27:46.973 回答
0

使用 winrm 运行 chef-client 时发生了类似的错误消息: knife winrm ADDRESS chef-client --manual-list --winrm-user USER --winrm-password 'PASSWORD' 问题是(可能是我)我两次引导服务器并更新了一些食谱。再次启动服务器并运行命令有效

于 2016-08-09T01:37:01.787 回答