Puppet: constrói o arquivo DNS a partir da configuração do nó (ou: como faço iteração globalmente sobre as variáveis do nó)

1

Eu também uso fantoche para meus nós. Eu também estou executando um servidor DNS (BIND).

Seria possível usar a variável $aliases que tenho para cada nó em um modelo para o módulo DNS?

Meus nós são assim:

$ cat nodes/kayak.local.pp
node 'kayak.local' {
  include base
  $node_aliases = ['svn','puppet']
  $node_primaryip = '10.0.64.200'

  network::interface { 'eth0':
    ip      => $node_primaryip,
    gw      => '10.0.64.1',
    mac     => '00:50:00:00:00:3f',
    netmask => '255.255.255.0',
  }

}

O que estou procurando é poder criar um modelo como este:

$cat local.erb

<% scope.lookupvar('ALLNODES::aliases').each do |alias| -%>
<%= alias %> IN A <%= node_primaryip %>
<% end -%> 

quem pode me ajudar?

    
por Karlo 09.04.2013 / 14:52

1 resposta

2

Você pode usar recursos exportados para isso.

  • cria um tipo definido que gerencia uma linha no seu arquivo dns
  • em cada host, crie um recurso que use esse tipo definido. Use @@ antes do tipo para torná-lo exportado.
  • Colete esses recursos em seu servidor DNS com o operador da nave espacial.

Sidenote: use o Hiera para todos os dados em seu manifesto.

    
por 10.04.2013 / 06:53