获取厨师搜索在食谱中返回的节点的IP地址

时间:2012-11-12 00:52:16

标签: chef chef-recipe

如何在Chef recipe(ruby)中获取节点搜索返回的IP地址。

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

几周前,此代码从搜索API返回了第一个IP的IP。

版本:厨师:10.14.2

1 个答案:

答案 0 :(得分:9)

我猜你是Ruby的新手。如果是的话,欢迎!

Chef search()函数返回一个Chef节点数组,您将使用first方法获取此数组的头部。要访问其他节点的IP地址,请使用常规数组运算符:

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

这可以为您提供所需的信息。