Gerenciando arquivos dinâmicos da zona DNS com o Puppet

2

Estou executando um servidor Debian 7.0 (Wheezy) e tenho uma configuração dinâmica de DNS em que meus clientes fazem solicitações DHCP e o servidor DHCP atualiza os arquivos da zona DNS com qualquer IP atribuído a cada cliente. Eu quero gerenciar essa configuração com o Puppet. Há apenas um problema, no entanto: eu não quero que o Puppet acerte meus registros DNS toda vez que eu enviar meus manifestos. Em qualquer caso, não faz muito sentido que os arquivos de zona sejam gerenciados pelo Puppet, pois eles normalmente serão continuamente atualizados. O que eu gostaria de fazer, no entanto, é fazer com que o Puppet envie arquivos de zona de "esqueleto" em seu lugar correto quando o serviço DNS ( bind9 ) for instalado pela primeira vez. A razão pela qual eu quero isso é porque eu quero encapsular toda a configuração do servidor em um único lugar, de modo que, com apenas alguns manifestos, eu possa clonar toda a configuração do servidor.

Primeiramente, eu queria que os recursos file dos arquivos de zona se inscrevessem no pacote do servidor DNS e definissem refreshonly to true . O único problema é que file types não tem refreshonly parameter . Então, obviamente, essa abordagem é um beco sem saída.

Existe uma maneira "correta" de fazer isso? Talvez com Augeas?

Atualizar

Eu tentei

augtool ls /files/etc/bind

e isso retornou nada ! Parece que o Augeas não consegue analisar meus arquivos de zona por algum motivo. Parece que Augeas não é a resposta, então!

    
por Joseph R. 05.06.2013 / 16:58

1 resposta

3

Resolvido! Na referência do tipo Puppet , um atributo do recurso file chamado replace foi exibido para ser apenas o que eu precisava. Cito o link acima:

replace

Whether to replace a file or symlink that already exists on the local system but whose content doesn’t match what the source or content attribute specifies. Setting this to false allows file resources to initialize files without overwriting future changes. Note that this only affects content; Puppet will still manage ownership and permissions. Defaults to true. Valid values are true (also called yes), false (also called no).

Eu simplesmente adicionei

replace => false

para os recursos do meu arquivo de zona e isso funcionou.

Editar

Na verdade, usei false em vez de no , pois não tenho certeza se o último é suportado (mesmo que o documento diga que é); outro sinalizador booleano similar me deu um erro de sintaxe quando tentei atribuí-lo yes . Portanto, use false para ser seguro.

    
por 05.06.2013 / 19:52