0

作为我们厨师基础设施的一部分,我正在尝试设置和配置 berks-api 服务器。我已经在 azure 中创建了一个 Ubuntu 服务器,并且我已经对其进行了引导,它在我的 chef-server 中显示为一个节点。

我已按照github - bekshelf-api installation上的说明通过说明书安装 berks-api。我跑了

sudo chef-client 

在我的节点上,食谱似乎已成功运行。

问题是berks-api 似乎没有运行。我的 Linux 术语不太好,如果我说的话有误,很抱歉,但似乎 berks-api 服务无法运行。如果我导航到 /etc/service/berks-api 并运行此命令

sudo berks-api

我收到这个错误

I, [2015-07-23T11:56:37.490075 #16643]  INFO -- : Cache manager starting...
I, [2015-07-23T11:56:37.491006 #16643]  INFO -- : Cache Builder starting...
E, [2015-07-23T11:56:37.493137 #16643] ERROR -- : Actor crashed!
Errno::EACCES: Permission denied @ rb_sysopen - /etc/chef/client.pem
    /opt/berkshelf-api/v2.1.1/vendor/bundle/ruby/2.1.0/gems/ridley-4.1.2/lib/ridley/client.rb:144:in `read'
    /opt/berkshelf-api/v2.1.1/vendor/bundle/ruby/2.1.0/gems/ridley-4.1.2/lib/ridley/client.rb:144:in `initialize'

如果有人可以帮助我弄清楚发生了什么,我将非常感激。如果您需要进一步解释设置,请告诉我。

4

1 回答 1

0

原来我误解了berks-api的配置。我需要从 manage.chef.io 为我们的组织为我的客户 (berkshelf) 获取一个新的私钥。然后我需要将新密钥 (berkshelf.pem) 上传到 /etc/berkshelf/api-server 并重新配置 berks-api 以使用新密钥。所以我对 berks-api 的配置现在如下所示:

{
  "home_path":"/etc/berkshelf/api-server",
  "endpoints":[
    {
      "type":"chef_server",
      "options":
      {
        "url":"https://api.opscode.com/organizations/my-organization",
        "client_key":"/etc/berkshelf/api-server/berkshelf.pem",
        "client_name":"berkshelf"
      }
    }
  ],
  "build_interval":5.0
}

我无法将 berkshelf.pem 直接上传到目标位置,我必须将其上传到我的家庭位置,然后从 linux 中复制它。

完成此操作后,服务启动并完美运行。

于 2015-07-24T09:56:50.540 回答