Ruby 如何将找到的每个值映射到不同的变量

Ruby 如何将找到的每个值映射到不同的变量,ruby,chef-infra,Ruby,Chef Infra,我想创建一个厨师食谱,但我仍停留在这一步: members = search("node", "recipe:redis AND chef_environment:#{node.chef_environment}") || [] members.each do |node| puts "#{node["ipaddress"]}" end 这是工作,并返回我的IP地址为这三个服务器找到。 但我希望将找到的每个值(ip地址)分配/赋予一个变量,因为我将运行如下命令: execute 'comm

我想创建一个厨师食谱,但我仍停留在这一步:

members = search("node", "recipe:redis AND chef_environment:#{node.chef_environment}") || []
members.each do |node|
  puts "#{node["ipaddress"]}"
end
这是工作,并返回我的IP地址为这三个服务器找到。 但我希望将找到的每个值(ip地址)分配/赋予一个变量,因为我将运行如下命令:

execute 'command' do
  command "redis-trib.rb create --replicas 1 #{node1}:6379 #{node2}:6379 #{node3}:6379 #{node1}:6380 #{node2}:6380 #{node3}:6380"
end

您可以这样做:

nodes = members.map do |node|
          node["ipaddress"]
        end
execute 'command' do
  command "redis-trib.rb create --replicas 1 #{nodes[0]}:6379 #{nodes[1]}:6379 #{nodes[2]}:6379 #{nodes[0]}:6380 #{nodes[1]}:6380 #{nodes[2]}:6380"
end
然后像这样使用它:

nodes = members.map do |node|
          node["ipaddress"]
        end
execute 'command' do
  command "redis-trib.rb create --replicas 1 #{nodes[0]}:6379 #{nodes[1]}:6379 #{nodes[2]}:6379 #{nodes[0]}:6380 #{nodes[1]}:6380 #{nodes[2]}:6380"
end