【发布时间】:2013-06-27 05:19:18
【问题描述】:
我想知道一个特定的配方是否会在不同配方内的节点上运行。我可以使用 node.recipe?(recipe_name) 方法,但是我的一些食谱是由角色和食谱管理的?似乎没有查看角色运行列表。
有没有一种简单的方法可以确定我的 recipie[redis] 是否将在当前节点上运行?
【问题讨论】:
标签: chef-infra chef-recipe knife
我想知道一个特定的配方是否会在不同配方内的节点上运行。我可以使用 node.recipe?(recipe_name) 方法,但是我的一些食谱是由角色和食谱管理的?似乎没有查看角色运行列表。
有没有一种简单的方法可以确定我的 recipie[redis] 是否将在当前节点上运行?
【问题讨论】:
标签: chef-infra chef-recipe knife
您正在寻找recipes 方法。注意尾随s!所以:
node.recipes.include?(recipe_name)
另请注意,有一对类似的角色检查方法。这些是role 和roles。对于角色和配方,单数形式用于直接分配,复数形式用于完全解析集。
【讨论】:
recipe? 方法,这似乎也是一个有效的选择——事实上更可取。区别在于recipes和roles是自动扩展的属性:github.com/opscode/chef/blob/master/lib/chef/node.rb#L339,并且chef允许你通过方法调用来查询属性。
recipe? 定义。)