有人可以帮我理解我怎么可以通过我的模板文件中的以下节点定义循环?
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 -%>
参考文献: