如何在Chef中访问run_list的所有食谱?

时间:2017-04-25 21:06:57

标签: chef chef-recipe

我正在编写HWRP,我需要访问将在客户端运行期间聚合的所有配方。 我使用 node.run_list.recipe_names 来访问它。但它似乎包括通过角色设置的食谱。

For example, I have a node with run_list 
role[role1] that has cookbook1::recipe2
role[role2] that has cookbook2::recipe1
cookbook3::recipe1
cookbook4::default

如果我使用 node.run_list.recipe_names ,则会返回

cookbook3::recipe1
cookbook4::default

node.run_list._to_s 返回

"role[role1], 
role[role2],
recipe[cookbook3::recipe1], 
recipe[cookbook4::default]. 

角色不会扩展。 如何创建一个只包含配方的变量?

"recipe[cookbook1:recipe2],
recipe[cookbook2:recipe1],
recipe[cookbook3::recipe1],
recipe[cookbook4::default]" 

1 个答案:

答案 0 :(得分:0)

你想要的是node['recipes']。但请记住,这不是一个完美的列表,通过include_recipe运行的任何内容只会在包含发生后显示在那里。