【发布时间】:2012-11-12 14:19:13
【问题描述】:
如何获取厨师食谱(红宝石)中节点搜索返回的 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 search() 函数返回一个 Chef 节点数组,您正在使用 first 方法获取该数组的头部。要访问其他节点的 IP 地址,请使用常规数组运算符:
dbnodes = search(:node, "role:Db")
dbnodes.each do |node|
Chef::Log.info("#{node["name"]} has IP address #{node["ipaddress"]}")
end
这应该为您提供所需的信息。
【讨论】:
search(:node, "*:*")。