Chef infra 访问配方中的原始运行列表
我想在执行覆盖操作时访问厨师食谱中的原始运行列表。是否有对象可用于执行此操作?现在我得到:Chef infra 访问配方中的原始运行列表,chef-infra,chef-recipe,Chef Infra,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: [r
[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]]
在recipe[baz]中,我想知道角色[foo]在节点的默认运行列表中
类似于此:
if node.original_runlist.includes?('role[foo]')
do_something
else
do_something_else
谢谢大家! 大多数属性都是Ohai在厨师运行开始时设置的。
您可以尝试将ohai作为烹饪书中的第一个命令运行,并捕获输出,以获得ohai基本属性的完整列表。
但无论如何,以下属性应该可以从配方中获得:
node['recipes']
与节点关联的配方列表(以及该节点运行列表的一部分)。
node['roles']
与节点(及其一部分)关联的角色列表
节点的运行列表)。更多详细信息如上面的评论所述,我找到了node.primary\u运行列表。如果其他人感兴趣:
run_list = node.primary_runlist
if run_list.includes?('role[foo]')
do_something
else
do_something_else
end
vvchik,谢谢你的回复。实际上,我查看了代码,发现客户端正在执行node.primary\u runlist。这提供了我想要的东西。