Estou usando o fantoche e o módulo de gerenciamento de dispositivos de rede de fantoches e estou tentando construir meu ambiente personalizado tipo.
No tipo interno para a configuração dos roteadores, você pode especificar uma lista de nós e, em seguida, a configuração dentro desse nó:
node "c2950.domain.com" {
Interface { duplex => auto, speed => auto }
interface { "FastEthernet 0/1":
description => "--> to end-user workstation",
mode => access, native_vlan => 1000
# [...] More configuration
}
O que estou tentando fazer é mover a declaração de manifesto dos nós e a configuração do meu tipo personalizado para um arquivo Hiera como este:
nodes:
- node1
- node2
config_device:
node1:
custom_parameter: "whatever1"
node2:
custom_parameter: "whatever2"
E, em seguida, no manifesto iterar sobre o arquivo hiera, criando os nós com a configuração de cada nó com algo como (estou tomando como referência esta questão no serverfault ):
class my_class {
$nodes = hiera_array('nodes')
define hash_extract() {
$conf_hash = hiera_hash("config_device")
$custom_paramter = $conf_hash[$name] ## TRICK lies in $name variable
node $name {
my_custom_device { $name:
custom_parameter => $device_conf['custom_parameter']
}
}
}
hash_extract{$pdu_names: }
}
}
Mas para esta solução eu tenho dois problemas, não consigo definir um node
dentro de um define
e não posso parametrizar um nome de nó. Então, existe alguma maneira de declarar nós de um arquivo Hiera com sua configuração dentro?