4

シェフでノードを正常にブートストラップした後、これらのエラー [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 : シェフサーバー (api) : ワーカー (ポート 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 要求返された 403 禁止: このアクションを実行することは許可されていません。[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

問題には次の 2 つの部分がありました。

  1. ピアによる接続のリセット - (Errno::ECONNRESET)

  2. HTTP リクエストが 409 を返しました: クライアントは既に存在し、致命的です: Net::HTTPServerException: 403 "Forbidden"

シェフがrabbitmqと通信できなかったことに絞り込むことができた最初の問題は、どこかでrabbitmqのすべての設定が削除されたようです。

2番目の問題は、私の調査中に(これはおそらくどこかに文書化されていると思います)、クライアントがclient.pemファイルを生成する前に、シェフがrabbitmqを介してcouchdbにpem情報を保存することが明らかになりました。問題 1 が原因でそのプロセスが完了していなかったため、クライアントは作成されましたが、認証情報が欠落していました。

解決

  1. すべてのシェフ サービス (solr、サーバー、webui) を停止し、/etc/chef/ の下にあるシェフ サーバー上のすべての *.pem ファイルを削除します。
  2. 必要なすべての情報でrabbitmqが構成されていることを確認し、chef server.rbファイルを情報で更新します
  3. Chef サービス (solr、server、webui) を起動します。これにより、必要なすべての .pem ファイルが再度生成されます。
  4. ナイフクライアントを実行して「問題があったノード」を削除します
  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"

シェフサーバーが実行されていたマシンでrabbitmqサーバーを再起動することで解決しました。

于 2013-11-05T09:35:02.860 に答える
0

シェフクライアントがそのホスト名でシェフサーバーに登録しているように聞こえます。その後、client.pemが変更され、証明書がSSLチェックに合格しないと403が発生します。基本的に、chef-server にはその証明書の公開側があるため、ノードを認証できます。

シェフ クライアントのセットアップ プロセスを 2 回実行すると、この問題が発生します。

于 2012-08-10T00:57:09.047 に答える