8

如何获取厨师食谱(红宝石)中节点搜索返回的 IP 地址。

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

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

版本:厨师:10.14.2

4

1 回答 1

10

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

Chefsearch()函数返回一个 Chef 节点数组,您正在使用该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 回答