2

我最近更新了我的厨师服务器上的 SSL 证书,现在我无法将食谱上传到厨师服务器。但是,我能够将角色/环境上传/修改/添加到厨师服务器,厨师节点客户端工作正常。下载菜谱时没有问题,只有在上传菜谱时。

我尝试重新启动厨师服务器服务,甚至重新启动厨师服务器,但问题仍然存在。

以下是我在使用刀上传食谱或通过 Chef Server UI 浏览食谱时遇到的错误:

### knife cookbook upload -o . chef-client_0 -V
Uploading chef-client_0  [3.3.3]
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Saving chef-client_0
INFO: Uploading files
INFO: Uploading /private/var/root/c/chef_cookbooks/vendor_cookbooks/chef-client_0/attributes/default.rb (checksum hex = bffdd0f69ce34d915bb6695f4bd10d0a) to https://CHEF_SERVER.MYDOMAIN:443/bookshelf/organization-00000000000000000000000000000000/checksum-bffdd0f69ce34d915bb6695f4bd10d0a?AWSAccessKeyId=847c5c55c0e51749a5aa8a987537b35b46cc7159&Expires=1395409204&Signature=UORF9gdB0G0svW0HuvPEfLxY15o%3D
INFO: HTTP Request Returned 500 Internal Server Error: internal service error
ERROR: internal server error
Response: internal service error

厨师服务器:11.0.10

厨师客户端:11.8.2

我尝试上传的食谱没有语法错误。

4

2 回答 2

3

不确定它可能是什么,但如果您还没有尝试以下命令(来自厨师服务器):

chef-server-ctl reconfigure

或者

chef-server-ctl test

希望这可以帮助!

于 2014-03-21T16:04:23.970 回答
1

我在 Amazon 中运行一个 Chef Server,它在 Amazon 区域之间共享。我不得不更改还有其他 FQDN 的 Chef 服务器 SSL 证书 FQDN。

Public FQDN (chef-server.rb "api_fqdn"):
chef-server.publicdomain.net  A PUBLIC_IP

Regional Prviate FQDN (client.rb "chef_server_url":
chefserver-[AWS REGION].publicdomain.net A PRIVATE_IP

要解决食谱上传“内部服务错误”问题,我必须将公共 FQDN 映射到 Chef 服务器上的本地 IP。公共 FQDN 仅用于外部 Amazon 访问或用户家庭静态 ip 白名单。

不同 Amazon 区域的 Chef 客户始终指向私有 FQDN。


现在我有另一个问题。当我在新节点上运行 Chef Client 时,它无法下载说明书,因为在说明书详细信息中,即使 client.rb 配置为使用私有 FQDN,Chef“url”也指向公共 FQDN:

/etc/chef/client.rb
chef_server_url "https://chefserver-[AWS REGION].internaldomain.net"

Chef 客户端运行调试日志:

[2014-03-23T07:48:47+00:00] DEBUG: Cookbooks detail: [#
<Chef::CookbookVersion:0x0000000240e0f0 @name="services", .., 
"url"=>"https://chef-server.publicdomain.net:443/bookshelf/organization-
00000000000000000000000000000000/checksum-21c2091bde685657c3d9602206cf44bb?
AWSAccessKeyId=847c5c55c0e51749a5aa8a987537b35b46cc7159&Expires=1395561826&Signature=
s/8Cr/ZWRmIaZPwzupPYDFh5jt4%3D"}], ..

作为一种解决方法,我必须将公共 FQDN 映射到私有 IP 地址才能运行 Chef Client 一次。

奇怪的是,在第一次运行 Chef Client 之后,我可以从节点中删除公共 FQN 到私有 IP 的映射,而且下载说明书没有问题。即使在 Cookbook 详细信息中,url 仍然指向无法从节点访问的 Public FQN。

于 2014-03-23T08:48:28.250 回答