我使用Vagrant与Berkshelf和Chef Solo。我有多个项目和多个虚拟机。我最近意识到,对于一些人来说,我需要使用"美味"食谱。X版本和其他人的"yum"食谱3。x版本。我相信Berkshelf可以很好地安装这两个,但我不知道如何在我的Vagrantfile中指定具体的一个。
它是Chef Solo配置块内JSON的一部分吗?或者它是add_recipe()方法的参数?
我找不到任何好的参考资料。
TIA !
我找到了答案。我想我应该把它贴在这里,因为我花了一段时间才弄明白…
在一个需要一些依赖的项目上,需要旧的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项目中使用它们。
我唯一不知道的是:在厨师内部。json块,版本只能是特定的,或者它可以包含与Berksfile中相同的选项吗?