如何使用chef_solo设置vagrant而不更改cookbook

时间:2012-10-05 21:55:22

标签: configuration apache2 chef vagrant

我正在与vagrantchef-solo合作,到目前为止效果非常好。我确实有一个厨师 - 独奏食谱的共同目录,因为我希望能够简单地从他们的git repository克隆一个opscode食谱,然后能够提取更新。为了做到这一点,我希望尽可能保持烹饪书的完整性,以便快进任何更新。

可以使用module.json = {}中的Vagrantfile选项轻松配置opscode的烹饪书。但是,某些选项不可配置,例如能够设置AllowOverride None - 设置或类似。

因此,我希望能够覆盖后续目录中的文件,类似于覆盖OOP中的函数。示例:apache2的cookbook包含apache2 / templates / default / default-site.erb中的默认站点模板,其中包含前面提到的AllowOverride None - 选项集。在ProjectA中,我将使用ProjectA的项目特定设置覆盖全局模板的default-site.erb,而ProjectB没有这样的文件,因此将使用全局模板。

有没有人有这样的设置运行或想法如何实现这个或类似的好设置?

1 个答案:

答案 0 :(得分:5)

Chef Solo支持site-cookbooks。要使它与vagrant一​​起使用,您需要手动设置它。这就是我在Vagrantfile

中定义cookbook路径的方法
chef.cookbooks_path = ["kitchen/cookbooks", "kitchen/site-cookbooks"]

site-cookbooks中的所有内容都会覆盖cookbooks中的内容。例如,将使用kitchen/site-cookbooks/apache2/templates/default/default-site.erb代替kitchen/cookbooks/apache2/templates/default/default-site.erb