2016-04-27 32 views
2

我想創建一個廚師配方和我被困在這個步驟中的每個值:我該如何映射到發現一個不同的變量

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 

回答

5

你可以做這樣的事情:

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 
+0

謝謝工作 –

相關問題