我有两本从头开始写的基本厨师食谱,一本食谱依赖于另一本。两种食谱都不依赖于社区食谱。因此,我被要求用2个基本的厨师食谱来创建包装食谱。
例如: 我有两本食谱“ test-a”和“ test-b”,它们都可在本地托管的厨师服务器上使用,并且不依赖于社区食谱。
询问要使用上述食谱“ test-a”和“ test-b”创建包装食谱“ test”。这样,他们就可以执行“ bootstrap / role / run_list”。
预先感谢
答案 0 :(得分:0)
利用role对象中的run_list
。您的情况应该是这样的:
$ cat roles/test.json
{
"run_list": [
"recipe[test-a]",
"recipe[test-b]"
]
}
另一种方法是创建另一本名为test
的食谱并利用include_recipe
,它应该类似于:
$ cat test/recipes/default.rb
include_recipe 'test-a'
include_recipe 'test-b'
$ cat test/metadata.rb
depends 'test-a'
depends 'test-b'
如果您有要覆盖的属性,请在test
包装手册中进行操作。例如,如果test-a
食谱具有诸如node.default[:foo] = 'baz'
之类的属性,则可以按如下所示进行覆盖
$ cat test/attributes/default.rb
node.default[:foo] = 'spam'
考虑在厨师博客上阅读Writing Wrapper Cookbooks和Doing Wrapper Cookbooks Right