我想出了答案。以为我会把它贴在这里,因为我花了一段时间才弄清楚......
在一个需要一些需要旧 yum 的依赖项的项目上:
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'
第二个项目的 Berksfile:
site :opscode
cookbook 'yum', '= 3.1.4'
它将两本食谱都放在 Berkshelf 食谱目录中,我可以在给定的 Vagrant 项目中使用其中任何一种。
我唯一不知道的是:在 chef.json 块中,版本只能是特定的还是可以包含与 Berksfile 中相同的选项?