如何在Chef recipe(ruby)中获取节点搜索返回的IP地址。
dbnodes = search(:node, "role:Db")
Chef::Log.info(dbnodes.first["ipaddress"]) # nil
几周前,此代码从搜索API返回了第一个IP的IP。
版本:厨师:10.14.2
答案 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
这可以为您提供所需的信息。