如何循环访问puppet节点定义中的条目

有人可以帮我理解我怎么可以通过我的模板文件中的以下节点定义循环?

ip::addr{ "as2s67v": ip0 => "192.168.30.0", pre0 => "/24", ip1 => "172.45.35.0", pre1 => "/16", ip2 => "145.88.88.0", pre2 => "/24", } 

我想用我的模板文件打印出上面的内容,但是我不能肯定有多less条目会存在,我想最终得到一个像这样的文件:

 server: as2s67v ipaddress0 = "192.168.30.0" prefix0 = "24" ipaddress1 = "172.45.35.0" prefix1 = "16" ipaddress2 = "145.88.88.0" prefix2 = "24" 

我怎么能做到这一点?

感谢丹

不完全是你在找什么,但它减less了不得不保持多个variables同步:

site.pp:

 class { 'ip::addr': name => "as2s67v", cidrs => [ "192.168.30.0/24", "172.45.35.0/16", "145.88.88.0/24" ] } 

模块/ IP / addr.pp:

 class ip::addr ($cidrs) { file { "/tmp/$name": content => template("ip/template.pp") } } 

template.pp:

 server: <%= name %> <% for idx in (0..(cidrs.length-1)) -%> ipaddress<%= idx %> = "<%= cidrs[idx].split("/")[0] %>" prefix<%= idx %> = "<%= cidrs[idx].split("/")[1] %> <% end -%> 

参考文献:

  • 你如何将一个数组传递给ruby中的erb模板,并重复它?
  • 在傀儡中嵌套数组