我想知道给定的配方是否已应用于管理到Chef的N个节点的列表。我怎么能这么容易做到。
答案 0 :(得分:5)
我怀疑你正在寻找这样的东西:
knife search node "recipes:<recipe_name>"
这将适用于显式运行列表以及扩展(隐式)运行列表。
这里有关于刀搜索的更详细文档:
答案 1 :(得分:4)
你可以用刀轻松完成这个(刀是你的朋友!)。
获取所有节点的列表:
knife node list
获取给定环境中所有节点的列表:
knife node list --environment <ENVIRONMENT>
使用手头的节点列表,您可以使用以下方式显示节点的详细信息:
knife node show <NODE_ID>
刀节点显示,将显示:
Node Name:
Environment:
FQDN:
IP:
Run List:
Roles:
Recipes:
Platform:
Tags:
食谱:行是已应用于节点的食谱列表。
使用刀搜索,您可以搜索符合特定条件的一组节点。使用它,您可以找到应用或未应用特定配方的节点。
答案 2 :(得分:0)
如果您的意思是在食谱中,您可以使用search,例如
ruby_nodes = search(:node, "recipes:ruby_build")
为了实现您的实际问题,您可以执行以下操作:
['192.168.1.2'].include?(ruby_nodes.map{|node| node[:ipaddress]})