我正在尝试使用 Chef 设置 Munin,但不确定将所需的自定义项放在哪里。例如,Github 上的文档说要
munin_plugin 'plugin_name'
在 client.rb 中添加 。
虽然目前这样做没问题,但它似乎抑制了我从食谱下载上游更改的能力,因为我必须合并或重写我的更改。
对食谱进行定制的正确方法是什么?
我是否
- 修改 foo/recipe/default.rb (或类似文件,如此处的 client.rb)
- 创建第二本食谱,命名为 munin-custom,然后创建第二个自定义食谱
- 创建单一的个性化食谱,cookbooks/acme_co 来放入这些更改?
答案1
最新的趋势是使用包装食谱:http://www.getchef.com/blog/2013/12/03/doing-wrapper-cookbooks-right/(如果您无法通过属性进行配置)。
除了添加其他资源外,您还可以访问上游食谱中定义的资源并根据需要进行修改。如果您的修改只是较小的修改,这可以避免分叉(我发现这比使用 librarian-chef 或 Berkshelf 和上游食谱更难跟踪上游更改)。
答案2
取决于您所说的定制是什么意思。
特定于实施的修改进入食谱目录结构的属性部分。
如果您需要修改菜谱,我只需分叉现有菜谱的一个分支,并保留一个开发厨师安装,以测试合并更改。