Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 12th, 2012  |  syntax: None  |  size: 1.12 KB  |  hits: 17  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Chef and ruby templates - hw to loop though key value pairs
  2. "zookeeper":{
  3.         "server1":"111.111.111.111",
  4.         "server2":"222.222.222.222"
  5.         },
  6.        
  7. data_bag("mydb")
  8. db = data_bag_item("mydb", "rtb")
  9. ZOOKEEPER = db['zookeeper']
  10.        
  11. template "/etc/zookeeper/conf/zoo.cfg" do
  12.   path "/etc/zookeeper/conf/"
  13.   source "zoo.cfg.erb"
  14.   owner "root"
  15.   group "root"
  16.   mode "0644"
  17.  variables :zookeeper => #{ZOOKEEPER}
  18. end
  19.        
  20. server.1=111.111.111.111:2888:3888
  21. server.2=222.222.222.222:2888:3888
  22.        
  23. count = 1
  24. for server, ipaddress in zookeeper:
  25.       server.count=ipaddress:2888:3888
  26.       count = count + 1
  27.        
  28. "zookeeper": [
  29.   "111.111.111.111",
  30.   "222.222.222.222"
  31. ],
  32.        
  33. <% @zookeeper.each_with_index do |ipaddress, index| %>
  34. <%= "server.#{index}=#{ipaddress}:2888:3888" %>
  35. <% end %>
  36.        
  37. <% @zookeeper.each_pair do |name, ipaddress| %>
  38. <%= "#{name}=#{ipaddress}:2888:3888" %>
  39. <% end %>
  40.        
  41. db = data_bag_item("mydb", "rtb")
  42. zookeeper = db['zookeeper']
  43.  
  44. template "/etc/zookeeper/conf/zoo.cfg" do
  45.   path "/etc/zookeeper/conf/"
  46.   source "zoo.cfg.erb"
  47.   owner "root"
  48.   group "root"
  49.   mode "0644"
  50.   variables :zookeeper => zookeeper
  51. end