cookbooks フォルダ以外に、 site-cookbooks フォルダも使っていたので、~/.chef/knife.rb の一部は以下のようになっていました。
cookbook_path [ './cookbooks', './site-cookbooks' ]
bundle exec knife solo prepare aaa
すると、prepare するサーバに Chef はインストールされるものの、Ruby のエラーが出て肝心の json ファイルが生成されない。
エラーは下記参照。
/Users/aaaaa/.rbenv/versions/1.9.3-p429/lib/ruby/gems/1.9.1/gems/knife-solo-0.4.0/lib/knife-solo/node_config_command.rb:44:in `exist?': can't convert Array into String (TypeError)
berkshelf を使えば cookbooks フォルダに統一できるし、cookbooks_path は cookbooks だけを指すようにしたら json ファイルも生成されましたとさ。
GitHub での議論はこちら。