TKC Works

ギジュツ的なメモ、読書感想文など

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"]