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

Mat*_*tej 8 chef-infra chef-recipe

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

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

几周前,这段代码从搜索API返回了第一个IP的IP.

版本:厨师:10.14.2

Tim*_*ter 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
Run Code Online (Sandbox Code Playgroud)

这应该为您提供所需的信息.