knife コマンドで cookbook(や metadata.rb, README.md) を作成するのを knife コマンド外から行う
執筆時の chef のバージョンは、以下のとおりです。
$ rpm -q chef chef-11.16.4-1.el6.x86_64
chef/cookbook_create.rb at 11.16.4 · opscode/chef · GitHub
をみると、
- create_cookbook
- create_changelog
- create_readme
- create_metadata
という method があります。
あとは、
create_cookbook = Chef::Knife::CookbookCreate.new create_cookbook.create_{cookbook,changelog,readme,metadata}(args...)
とすれば良いです。
調査時に使いたかったのは create_metadata だったのですが、
Chef::Cookbook::Metadata.from_file で読み込んで、
metadata.rb を上書きするという用途で使えるものではありませんでした。
※追記
chef/cookbook_metadata.rb at 11.16.4 · opscode/chef · GitHub
というものもありました。