Chef infra 如何获取应用于Chef节点的食谱列表?

Chef infra 如何获取应用于Chef节点的食谱列表?,chef-infra,Chef Infra,我想知道,给定的配方是否已应用于要管理的N个节点的列表。我怎样才能轻松做到这一点。你可以用小刀轻松做到这一点(小刀是你的朋友!) 要获取所有节点的列表,请执行以下操作: knife node list 要获取给定环境中所有节点的列表,请执行以下操作: knife node list --environment <ENVIRONMENT> Recipes:行是已应用于节点的配方列表 使用刀搜索可以搜索满足特定条件的一组节点。使用它,您可以找到应用或不应用特定配方的节点。如果您的意思

我想知道,给定的配方是否已应用于要管理的N个节点的列表。我怎样才能轻松做到这一点。

你可以用小刀轻松做到这一点(小刀是你的朋友!)

要获取所有节点的列表,请执行以下操作:

knife node list
要获取给定环境中所有节点的列表,请执行以下操作:

knife node list --environment <ENVIRONMENT>
Recipes:行是已应用于节点的配方列表


使用刀搜索可以搜索满足特定条件的一组节点。使用它,您可以找到应用或不应用特定配方的节点。

如果您的意思是在配方中,您可以使用,例如

ruby_nodes = search(:node, "recipes:ruby_build")
为了解决您的实际问题,您可以执行以下操作:

['192.168.1.2'].include?(ruby_nodes.map{|node| node[:ipaddress]})

我猜你在找这样的东西:

knife search node "recipes:<recipe_name>"
刀搜索节点“菜谱:”
这将适用于显式运行列表以及扩展(隐式)运行列表

此处有关于刀具搜索的更详细文档:


我发现无论是
刀搜索节点“菜谱:我的烹饪书”
还是
刀搜索节点“菜谱:我的烹饪书::默认”
都不够<代码>刀子搜索节点“菜谱:我的烹饪书\:\:默认设置”帮了我的忙。我不明白为什么关闭该节点的范围太广。这是一个非常明确的问题。
['192.168.1.2'].include?(ruby_nodes.map{|node| node[:ipaddress]})
knife search node "recipes:<recipe_name>"