4

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

发生的初始错误如下

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

merb : chef-server (api) : worker (端口 4000) ~ 开始请求处理: Wed Aug 08 19:04:32 +0200 2012 merb: chef-server (api) :worker (port 4000) ~ Params: {"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] 信息:* Chef 10.12.0 * [2012-08-08T19:47:57+02:00] 信息:客户端密钥 /etc/chef/client.pem不存在 - 注册 [2012-08-08T19:47:58+02:00] 信息:返回 HTTP 请求 409 冲突:客户端已存在 [2012-08-08T19:47:58+02:00] 信息:HTTP 请求Returned 403 Forbidden:不允许您执行此操作。[2012-08-08T19:47:58+02:00] 致命:堆栈跟踪转储到 /var/chef/cache/chef-stacktrace.out [2012-08-08T19:47:58+02:00] 致命:净::HTTPServerException:403“禁止”

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

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

4

4 回答 4

10

这个问题有两个部分:

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

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

我能够缩小范围的第一个问题是厨师无法与rabbitmq交流,似乎在某个地方,rabbitmq上的所有设置都被删除了。

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

解决方案

  1. 停止所有厨师服务(solr、服务器、webui)并删除位于 /etc/chef/ 下的厨师服务器上的所有 *.pem 文件
  2. 确保 rabbitmq 配置了所有必要的信息,并使用信息更新你的 chef server.rb 文件
  3. 启动厨师服务(solr、服务器、webui),这将导致所有必要的 .pem 文件再次生成
  4. 运行刀客户端删除“node-which-had-issues”
  5. 在新/引导节点上执行 chef-client
于 2012-08-10T06:43:44.753 回答
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"

我通过在运行 Chef 服务器的机器上重新启动 rabbitmq 服务器来解决它。

于 2013-11-05T09:35:02.860 回答
0

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

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

于 2012-08-10T00:57:09.047 回答
0

我有 Net::HTTPServerException: 403 "Forbidden" 错误,我运行了 "knife acl" 命令并修复了它。

例子:

knife acl bulk add group clients nodes NODE_NAME update,read

NODE_NAME = yourserver@yourdomain

于 2021-09-21T04:33:42.793 回答