【问题标题】:Chef node - check if recipe will run on it, looking inside roles as well厨师节点 - 检查配方是否将在其上运行,同时查看角色内部
【发布时间】:2013-06-27 05:19:18
【问题描述】:

我想知道一个特定的配方是否会在不同配方内的节点上运行。我可以使用 node.recipe?(recipe_name) 方法,但是我的一些食谱是由角色和食谱管理的?似乎没有查看角色运行列表。

有没有一种简单的方法可以确定我的 recipie[redis] 是否将在当前节点上运行?

【问题讨论】:

    标签: chef-infra chef-recipe knife


    【解决方案1】:

    您正在寻找recipes 方法。注意尾随s!所以:

    node.recipes.include?(recipe_name)
    

    另请注意,有一对类似的角色检查方法。这些是roleroles。对于角色和配方,单数形式用于直接分配,复数形式用于完全解析集。

    【讨论】:

    • 我能找到的最好的文档是厨师票CHEF-1587,它指向厨师源文件node.rb,这似乎与您的复数形式相矛盾,不是吗?还是我错过了红宝石主义?
    • 这并不矛盾,而是一个 API 对同一数据有多个访问点。我想你指的是recipe? 方法,这似乎也是一个有效的选择——事实上更可取。区别在于recipesroles是自动扩展的属性:github.com/opscode/chef/blob/master/lib/chef/node.rb#L339,并且chef允许你通过方法调用来查询属性。
    • 哦,嗯,我之前确实读过那行,但不明白它是如何工作的。你的解释更有意义。谢谢! (是的,我在谈论第 246 行的 recipe? 定义。)
    猜你喜欢
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2019-10-13
    相关资源
    最近更新 更多