我正在与vagrant和chef-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没有这样的文件,因此将使用全局模板。
有没有人有这样的设置运行或想法如何实现这个或类似的好设置?
答案 0 :(得分:5)
Chef Solo支持site-cookbooks
。要使它与vagrant一起使用,您需要手动设置它。这就是我在Vagrantfile
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
。