0

シェフのインフラストラクチャの一部として、berks-api サーバーをセットアップして構成しようとしています。AzureでUbuntuサーバーを作成し、それをブートストラップして、シェフサーバーのノードとして表示します。

github - bekshelf-api installationの指示に従って、クックブック経由で beks-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 の設定を誤解していたことが判明しました。クライアント (berkshelf) の新しい秘密鍵を、組織の manage.chef.io から取得する必要がありました。次に、新しいキー (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 に答える