我有一个包含postgresql::server
的包装食谱。在另一本食谱中,我想检查是否应用了该食谱。使用node.recipe? 'postgresql::server'
我无法测试。
我如何与Chef一起做这件事?
答案 0 :(得分:3)
尝试node['recipes'].include? 'postgresql::server'
根据the code,您的node.recipe?
应该使用最新版本。
答案 1 :(得分:0)
出于完整性考虑:
原则上,node.recipe?
是正确的选择。
但是在厨师运行的编译阶段中,node['recipes']
最初只会在您明确定义的运行列表中包含配方。
它将在编译阶段完成,每发生include_recipe
次。
因此:
如果您的node.recipe? 'postgresql::server'
在编译前先于include_recipe 'postgresql::server'
被求值,它将返回false
。
答案 2 :(得分:-1)
从这里开始:https://docs.chef.io/run_lists.html
knife status --run-list
knife status "role:web" --run-list
希望这有帮助。
谢谢,蒂姆。