答えがわかった。理解するのに時間がかかったので、ここに投稿しようと思いました...
古い yum を必要とするいくつかの依存関係を必要とする 1 つのプロジェクト:
config.vm.provision :chef_solo do |chef|
chef.add_recipe 'yum'
# ... other recipes
chef.json = {
yum: { version: '2.4.4' }
}
end
最新の yum を必要とするいくつかの依存関係を必要とする他のプロジェクト:
config.vm.provision :chef_solo do |chef|
chef.add_recipe 'yum'
# ... other recipes
chef.json = {
yum: { version: '3.1.4' }
}
end
そして、最初のプロジェクトの Berksfile で:
site :opscode
cookbook 'yum', '= 2.4.4'
2 つ目のプロジェクトの Berksfile は次のとおりです。
site :opscode
cookbook 'yum', '= 3.1.4'
両方のクックブックを Berkshelf のクックブック ディレクトリに配置し、特定の Vagrant プロジェクトでどちらも使用できます。
私が知らない唯一のことは、chef.json ブロック内で、バージョンを特定することしかできないのか、それとも Berksfile と同じオプションを含めることができるのかということです。