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

isa*_*awk 4 chef-infra

成功后自举与厨师节点我得到这些错误[http://pastebin.com/BEgNh2mm][chef-client/server错误.

发生的初始错误如下

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

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

(来自客户端STDOUT的片段)

[2012-08-08T19:47:57 + 02:00]信息:*厨师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]致命:净:: HTTPServerException:403"Forbidden"

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

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

isa*_*awk 10

问题分为两部分:

  1. 连接由同行重置 - (Errno :: ECONNRESET)

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

第一个问题,我能够缩小到厨师无法与rabbitmq沟通,似乎在线上的所有设置都被删除了.

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

  1. 停止所有主厨服务(solr,server,webui)并删除位于/ etc/chef /下的chef服务器上的所有*.pem文件
  2. 确保rabbitmq配置了所有必要的信息,并更新您的chef server.rb文件和信息
  3. 启动厨师服务(solr,server,webui),这将导致再次生成所有必需的.pem文件
  4. 运行刀客户端删除"node-which-had-issues"
  5. 在new/bootstrapped节点上执行chef-client