Berkshelf v3.0の変更点など
Berkshelfはv2.0とv3.0でけっこう変わっている。
ボクはVagrant上で何か試したい時にちょっと使う程度だが、係る部分はメモっておく。
Vagrantのpluginはvagrant-omnibusが必要。vagrant-berkshelfは使っていない。
今までは
Vagrantfile
config.omnibus.chef_version = :latest
config.vm.provision "chef_solo" do |chef|
chef.cookbooks_path = "cookbooks"
chef.add_recipe "nginx"
Berksfile
site :opscode
cookbook 'nginx'
みたいに書いておいて、
$ berks install --path cookbooks
$ vagrant provision
としていたが、v3.0ではberks install
でcookbooksの出力先が指定できなくなっているぽい。
代わりにberks vendor
とやるとpwd/berks-cookbooksに入る。
なのでcookbooksのパス指定を変えてやる必要がある。
Vagrantfile
config.omnibus.chef_version = :latest
config.vm.provision "chef_solo" do |chef|
chef.cookbooks_path = "berks-cookbooks"
chef.add_recipe "nginx"
ちなみのBerksfileの書き方も変わっていて、
Berksfile
source "https://api.berkshelf.com"
metadata
cookbook "nginx"
こうなる。
knife-soloの場合は.chef/knife.rbのcookbook_pathにberks-cookbooksを追記すればよい。
cookbook_path ["cookbooks", "site-cookbooks", "berks-cookbooks"]