Puppet: O nome do nó parece dependente do DNS reverso?

20

Parece que estou com um pequeno problema para entender como fazer isso funcionar. Eu tenho um novo servidor que estou construindo sentado atrás do escritório NAT no trabalho, seu reverso dns mapeia para office.mydomain.com , mas eu quero que a máquina seja ns2.mydomain.com por causa do fantoche.

nós.pp snippet:

node 'ns2.mydomain.com' inherits basenode {
  info('ns2.mydomain.com')
}

node 'office.mydomain.com' inherits basenode {
  info('office.mydomain.com')
}

E meu 'puppet.conf' no cliente:

[main]
#was node_name=ns2.mydomain.com
#was fqdn=ns2.mydomain.com
certname=ns2.mydomain.com
node_name=cert

Meu syslog nos relatórios do servidor:

Sep 16 22:59:12 support puppetmasterd[2800]: Host is missing hostname and/or domain: office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: (Scope(Node[office.mydomain.com])) office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: Compiled catalog for office.mydomain.com in 0.03 seconds
Sep 16 22:59:12 support puppetmasterd[2800]: Caching catalog for ns2.mydomain.com

Como faço para pegar a configuração de ns2.mydomain.com sem fazer algo assim:

node 'ns2.mydomain.com' inherits basenode {
  info('ns2.mydomain.com')
}

node 'office.mydomain.com' inherits 'ns2.mydomain.com' {
  info('office.mydomain.com')
}

UPDATE : este problema parece estar causando outros problemas também. Por exemplo, se eu info("$fqdn") enquanto a máquina está sentada atrás de office.mydomain.com , o fato fqdn está vazio, assim como o $operatingsystem . É quase como se os fatos não estivessem sendo descobertos corretamente. Existe talvez um problema NAT? Há alguma sugestão para rastrear esta causa deste problema?

    
por gnarf 17.09.2009 / 05:03

2 respostas

26

Aaah, detecção de nome de host do Puppet. Que pesadelo ...

Por padrão, qual nome será usado para descobrir qual node de definição usar com base no conteúdo do fato fqdn. O que isso realmente mapeia depende de algumas coisas diferentes, e sim, o DNS reverso é um deles - e é preferível ao próprio nome do host da máquina!

No entanto, esse nome (geralmente) só se aplica no momento da geração do certificado. Você está realmente usando indevidamente a variável node_name - ela deve ser definida como 'cert' ou 'facter'. O parâmetro fqdn também está obsoleto.

O que você realmente deseja fazer é definir o parâmetro certname no cliente para o nome do nó que deseja usar e, em seguida, definir node_name para cert (ou simplesmente deixá-lo out, desde cert é o padrão). Isso levará o nome do nó do CN do certificado que o cliente apresenta, e o parâmetro certname garante que ele esteja definido como algo razoável, em vez de o que o facetador decidir criar sozinho. Infelizmente, como você já criou certs "errados", você precisará regenerar esses certificados ( rm -rf /var/lib/puppet/ssl no cliente e executar novamente o Puppet) depois de configurar a configuração, para que os certificados certos sejam criados e usado.

Se tudo isso soa um pouco complicado, você está certo - é. Bem-vindo ao Puppet.

    
por 17.09.2009 / 14:07
5

Parece que estou tendo boa sorte (embora ainda existam alguns casos de teste que eu quero ver) na edição de /etc/hosts para listar o fqdn desejado sob 127.0.0.1 como a primeira opção. Parece estar detectando corretamente / passando fatos então. Embora pareça que ainda preciso criar um nó chamado office.mydomain.com que herda o nó que eu quero.

    
por 18.09.2009 / 23:17

Tags