8

シェフレシピ(ルビー)のノード検索で返されるIPアドレスを取得するにはどうすればよいですか?

dbnodes = search(:node, "role:Db")
Chef::Log.info(dbnodes.first["ipaddress"]) # nil

数週間前、このコードは検索 API から最初のインスタンスの IP を返しました。

バージョン: シェフ: 10.14.2

4

1 に答える 1

10

Ruby は初めてだと思います。もしそうなら、ようこそ!

Chef関数は Chef ノードの配列を返し、メソッドsearch()を使用してこの配列の先頭を取得しています。first他のノードの IP アドレスにアクセスするには、通常の配列演算子を使用します。

dbnodes = search(:node, "role:Db")
dbnodes.each do |node|
  Chef::Log.info("#{node["name"]} has IP address #{node["ipaddress"]}")
end

これにより、必要な情報が得られるはずです。

于 2012-11-12T06:19:13.973 に答える