teketeke_55の日記

技術メモとか

chef-serverに接続できなくなった時の対応メモ

以下のようなメッセージが出てknifeもchef-clientもうまく動作しないことがある。

 ERROR: Connection refused connecting to fedora16:4000 for /clients, retry 5/5
 Failed to authenticate. Ensure that your client key is valid

こういった場合はchef-server落ちている可能性がある。
プロセスを確認して落ちていたら起動する。

 # /etc/init.d/chef-server start
 Starting chef-server (via systemctl):                   [  OK  ]

OKは出るがプロセスが存在しない場合。

couchdbに接続できていない可能性がある。
server.rbのLOGの項目をdebug変更して再度起動スクリプトを実行

 log_level          :debug
 log_location      "/var/log/chef/debug.log"

以下のようなLOGが出力されていたらcouchdbに接続できていない。
プロセスもcouchdbが存在するか確認しておく。

 [2013-01-24T14:30:54+09:00] DEBUG: Sending HTTP Request via GET to localhost:5984/_all_dbs
 [2013-01-24T14:30:54+09:00] ERROR: Connection refused connecting to localhost:5984 for /_all_dbs, retry 1/5

念の為、chef周りもひと通り再起動。

  /etc/init.d/chef-server stop
  /etc/init.d/chef-expander stop
  /etc/init.d/chef-solr stop
  /etc/init.d/couchdb start
  /etc/init.d/chef-solr start
  /etc/init.d/chef-expander start
  /etc/init.d/chef-server start

これで正常に起動できた。
debug.logにも以下のような出力が。

 [2013-01-24T15:01:34+09:00] DEBUG: ---- HTTP Status and Header Data: ----
 [2013-01-24T15:01:34+09:00] DEBUG: HTTP 1.1 200 OK
 [2013-01-24T15:01:34+09:00] DEBUG: content-type: application/json
 [2013-01-24T15:01:34+09:00] DEBUG: date: Thu, 24 Jan 2013 06:01:34 GMT
 [2013-01-24T15:01:34+09:00] DEBUG: server: CouchDB/1.0.2 (Erlang OTP/R14B)
 [2013-01-24T15:01:34+09:00] DEBUG: content-length: 18
 [2013-01-24T15:01:34+09:00] DEBUG: cache-control: must-revalidate
 [2013-01-24T15:01:34+09:00] DEBUG: ---- End HTTP Status/Header Data ----

相変わらずchef-clientで以下のようなエラーが出る場合。

 [Thu, 24 Jan 2013 15:57:42 +0900] INFO: HTTP Request Returned 409 Conflict: Client already exists
 [Thu, 24 Jan 2013 15:57:42 +0900] INFO: HTTP Request Returned 403 Forbidden: You are not allowed to take this action.

knifeコマンドでクライアントを削除してchef-clientを実行する。

  knife client delete 【クライアント名】

またはknifeコマンドでclient 設定をやり直す

 knife counfigure -i
※設定内容適宜入力する