Como definir nós de um arquivo Hiera no Puppet?

1

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?

    
por Pigueiras 12.11.2013 / 09:41

1 resposta

0

Por que você quer descrever todos os nós em um arquivo hiera? O que torna o hiera superb é a sua configuração hierárquica. Use arquivos de configuração separados para camadas de hierarquia separadas e, finalmente, tenha um arquivo hiera separado para um nó separado. E todas essas camadas serão mescladas.

    
por 12.11.2013 / 10:08

Tags