访问食谱

时间:2016-04-12 20:21:07

标签: chef chef-recipe

我想在进行覆盖时访问厨师食谱中的原始运行列表。是否有可用的对象?现在我得到:

[2016-04-12T20:14:27+00:00] WARN: Run List override has been provided.
[2016-04-12T20:14:27+00:00] WARN: Original Run List: [role[foo], role[bar]]
[2016-04-12T20:14:27+00:00] WARN: Overridden Run List: [recipe[baz]]

在食谱[baz]中我想知道角色[foo]在节点的默认运行列表中。

类似于此:

if node.original_runlist.includes?('role[foo]')
    do_something
else
    do_something_else

谢谢!

2 个答案:

答案 0 :(得分:1)

如上面的评论中所述,我找到了node.primary_runlist。如果其他人有兴趣:

run_list = node.primary_runlist
if run_list.includes?('role[foo]')
    do_something
else
    do_something_else
end

答案 1 :(得分:0)

大多数属性都是由Ohai在厨师开始时设定的 你可以尝试在你的食谱中运行ohai作为第一个命令并捕获输出以获得基本Ohai属性的完整列表 但无论如何,应该从食谱中获得以下属性:
-与节点关联的配方列表(以及该节点的运行列表的一部分)。 -与节点关联的角色列表(以及其中的一部分) 节点的运行列表) 更多详情here