Como percorrer as entradas na definição de nós para o fantoche

1

Alguém poderia me ajudar a entender como eu poderia percorrer a seguinte definição de nós no meu arquivo de modelos?

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

Gostaria de imprimir o texto acima usando meu arquivo de modelo, mas não posso ter certeza de quantas entradas existirão, quero terminar com um arquivo assim:

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

Como eu poderia conseguir isso?

obrigado Dan

    
por Dan 19.03.2013 / 09:32

1 resposta

2

Não é exatamente o que você está procurando, mas reduz a necessidade de manter várias variáveis em sincronia:

site.pp:

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

modules / 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 -%>

Referências:

por 21.03.2013 / 05:03

Tags