chefでCouchDBに変な値が入ることがある

knife node list

こんな感じでnode一覧を取得しようとすると、ServerErrorになって何度もタイムアウトする・・・
server.logを見ると

merb : worker (port 4000) ~ Named route chef_server_api_node could not be generated with {:id=>nil} - (Merb::Router::GenerationError)

みたいな。
これ、nodeのnameがnullの状態でCouchDBに保存されちゃってると発生するぽい。

イレギュラーなデータを消してやれば解決する。
CouchDBはWebUIがあるので、下記のURIで全IDが参照できる。
http://localhost:5984/_utils/database.html?chef/_design/nodes/_view/all_id

そこでおかしいやつを消してやる。
ただ、Chefいれてデフォルトだとlocalhostしか許可されてないぽいので
リモート環境であればnginxかなんかでプロキシしてやる必要あるかも。