9

特定のレシピがChefに管理されているNノードのリストに適用されているかどうかを知りたいです。どうすればこれを簡単に行うことができますか。

4

3 に答える 3

6

これはナイフを使えば簡単にできます (ナイフは友達です!)。

すべてのノードのリストを取得するには:

knife node list

特定の環境内のすべてのノードのリストを取得するには:

knife node list --environment <ENVIRONMENT>

ノードのリストが手元にあれば、次を使用してノードの詳細を表示できます。

knife node show <NODE_ID>

ナイフ ノード ショーでは、次のように表示されます。

Node Name:   
Environment: 
FQDN:        
IP:          
Run List:    
Roles:       
Recipes:     
Platform:    
Tags:   

Recipes:行は、ノードに適用されたレシピのリストです。

ナイフ検索を使用すると、特定の基準を満たす一連のノードを検索できます。これを使用すると、特定のレシピが適用されているノードと適用されていないノードを見つけることができます。

于 2013-03-19T22:17:18.897 に答える
6

次のようなものを探しているのではないかと思います。

knife search node "recipes:<recipe_name>"

これは、明示的な実行リストだけでなく、展開された (暗黙的な) 実行リストにも適用されます。

ナイフ検索に関するより詳細なドキュメントがここにあります。

http://docs.opscode.com/knife_search.html

于 2013-04-26T20:38:40.787 に答える
1

レシピ内を意味する場合は、たとえばsearchを使用できます

ruby_nodes = search(:node, "recipes:ruby_build")

実際の質問を達成するには、次のようなことができます。

['192.168.1.2'].include?(ruby_nodes.map{|node| node[:ipaddress]})
于 2013-04-08T02:54:47.880 に答える