我和Berkshelf和Chef Solo一起使用Vagrant。我有多个具有多个VM的项目。我最近意识到,对于一些人来说,我需要使用' yum' cookbook 2.x版本和其他人的#yum' cookbook 3.x版。我相信Berkshelf可以安装两者都很好,但我不知道如何在我的Vagrantfile中特别指定哪一个。
它是Chef Solo配置块中的JSON的一部分吗?或者它是add_recipe()方法的参数?
我找不到任何好的参考资料。
TIA!
答案 0 :(得分:1)
我想出了答案。以为我会在这里发布,因为我花了一段时间来弄明白......
在一个项目中需要一些需要较旧的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中相同的选项?