执行刀具引导后的chef-client连接错误

时间:2012-08-08 17:54:56

标签: chef

在使用厨师成功引导节点后,我收到了这些错误[http://pastebin.com/BEgNh2mm][chef-client/server errors]。

发生的初始错误如下

(来自服务器日志的片段):

merb:chef-server(api):worker(端口4000)〜开始请求处理:2008年8月8日星期三19:04:32 +0200 2012 merb:chef-server(api):worker(端口4000)~Params:{“name”=>“devhouse”,“controller”=>“clients”,“action”=>“create”,“admin” “=>假} merb:chef-server(api):worker(端口4000)〜Connection reset by peer - (Errno::ECONNRESET)

(来自客户端STDOUT的片段)

[2012-08-08T19:47:57 + 02:00] INFO: * Chef 10.12.0 * [2012-08-08T19:47:57 + 02:00]信息:客户端密钥/etc/chef/client.pem不存在 - 注册 [2012-08-08T19:47:58 + 02:00] INFO:HTTP请求返回409冲突:客户端已存在 [2012-08-08T19:47:58 + 02:00] INFO:HTTP请求返回403禁止访问:您不能执行此操作。 [2012-08-08T19:47:58 + 02:00]致命:Stacktrace转储到/var/chef/cache/chef-stacktrace.out [2012-08-08T19:47:58 + 02:00]致命:Net :: HTTPServerException:403“Forbidden”

从上面的错误我唯一可以推断的是客户端无法与服务器通信,但是,令人难以置信的是,客户端能够以某种方式向服务器注册导致执行{{1} }显示客户端列表中的哪个字段,但客户端更新尝试失败并显示knife client list

Chef常见错误似乎没有任何此类行为的记录。

3 个答案:

答案 0 :(得分:10)

问题分为两部分:

  1. 通过对等方重置连接 - (Errno :: ECONNRESET)

  2. HTTP请求返回409冲突:客户端已存在且FATAL:Net :: HTTPServerException:403“Forbidden”

  3. 第一个问题我能够缩小到没有能够与rabbitmq沟通的厨师,看起来像是在某个地方,所有关于rabbitmq的设置都被删除了。

    第二个问题,在我调查过程中(我相信这可能在某处记录)很明显,在客户端生成client.pem文件之前,厨师通过rabbitmq在couchdb中存储pem信息。由于问题1导致该流程未完成,因此创建了客户端,但缺少身份验证信息。

    <强>解决方案

    1. 停止所有主厨服务(solr,server,webui)并删除位于/ etc / chef /
    2. 下的厨师服务器上的所有* .pem文件
    3. 确保rabbitmq配置了所有必要的信息,并使用信息
    4. 更新您的chef server.rb文件
    5. 启动厨师服务(solr,server,webui),这将导致所有必要的.pem文件再次生成
    6. run knife client delete“node-which-having-issues”
    7. on new / bootstrapped node execute chef-client

答案 1 :(得分:1)

我面临同样的问题。

厨师的客户端

[2013-11-05T14:21:32+05:30] INFO: *** Chef 0.10.4 ***
[2013-11-05T14:21:34+05:30] INFO: Client key /etc/chef/client.pem is not present - registering
[2013-11-05T14:21:36+05:30] INFO: HTTP Request Returned 500 Internal Server Error: Connection refused - connect(2)
[2013-11-05T14:21:36+05:30] ERROR: Server returned error for http://"chef-server":4000/clients, retrying 1/5 in 4s
[2013-11-05T14:21:40+05:30] INFO: HTTP Request Returned 409 Conflict: Client already exists
[2013-11-05T14:21:40+05:30] INFO: HTTP Request Returned 403 Forbidden: You are not allowed to take this action.
[2013-11-05T14:21:40+05:30] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2013-11-05T14:21:40+05:30] FATAL: Net::HTTPServerException: 403 "Forbidden"

我通过在运行厨师服务器的机器上重新启动rabbitmq服务器解决了这个问题。

答案 2 :(得分:0)

听起来像chef-client正在使用该主机名注册chef-server,然后更改client.pem,当证书未通过SSL检查时将导致403。基本上,chef-server具有该证书的公共端,因此它可以对节点进行身份验证。

如果您正在运行两次厨师 - 客户端设置过程,则会导致此问题。