シェフレシピ(ルビー)のノード検索で返されるIPアドレスを取得するにはどうすればよいですか?
dbnodes = search(:node, "role:Db")
Chef::Log.info(dbnodes.first["ipaddress"]) # nil
数週間前、このコードは検索 API から最初のインスタンスの IP を返しました。
バージョン: シェフ: 10.14.2
シェフレシピ(ルビー)のノード検索で返されるIPアドレスを取得するにはどうすればよいですか?
dbnodes = search(:node, "role:Db")
Chef::Log.info(dbnodes.first["ipaddress"]) # nil
数週間前、このコードは検索 API から最初のインスタンスの IP を返しました。
バージョン: シェフ: 10.14.2
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
これにより、必要な情報が得られるはずです。