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

20

Parece que estou com um pouco de problema para entender como fazer isso funcionar. Eu tenho um novo servidor que estou construindo sentado atrás do escritório NAT no trabalho, o seu DNS reverso mapeia office.mydomain.com, mas eu quero que a máquina seja ns2.mydomain.compara o bem das marionetes.

snippet do nodes.pp:

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 no servidor relata:

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 posso fazê-lo pegar a configuração ns2.mydomain.comsem fazer algo como isto:

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

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

ATUALIZAÇÃO : Esse problema parece estar causando outros problemas também. Por exemplo, se eu, info("$fqdn")enquanto a máquina estiver sentada atrás, office.mydomain.como fato do fqdn estiver vazio, assim como o $operatingsystem. É quase como se os fatos não estivessem sendo descobertos corretamente. Existe talvez um problema de NAT? Existem sugestões para rastrear essa causa desse problema?

gnarf
fonte

Respostas:

26

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

Por padrão, qual nome será usado para descobrir qual nodedefinição usar é baseada no conteúdo do fato fqdn. O que isso realmente mapeia depende de algumas coisas diferentes, e sim, o DNS reverso é uma delas - e é preferível ao nome do host da máquina!

No entanto, esse nome (geralmente) se aplica apenas no momento da geração do certificado. Você está realmente abusando da node_namevariável - ela deve ser definida como uma de 'cert' ou 'facter'. O fqdnparâmetro também está obsoleto.

O que você realmente deseja fazer é definir o certnameparâmetro no cliente como o nome do nó que você deseja usar e, em seguida, definir node_namecomo cert(ou simplesmente deixá-lo de fora, pois esse certé o padrão). Isso usará o nome do nó do CN do certificado que o cliente apresenta, e o certnameparâmetro garante que isso seja definido como algo razoável, em vez de qualquer elemento que decida criar sozinho. Infelizmente, como você já criou certificados "errados", precisará regenerá-los ( rm -rf /var/lib/puppet/sslno cliente e executar novamente o Puppet) depois de configurar a configuração, para que os certificados certos sejam criados e usados.

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

mulher
fonte
Olá - olhando para o puppetmaster e o puppet - ambos foram node_name=certatualizados cert_name=ns1.mydomain.come facter fqdnretornam ns1.mydomain.comao cliente, mas ainda continuo com as mesmas mensagens de erro office.mydomain.com.
Gnarf 17/09/09
11
re: certname, você está certo, lembrei-me errado e não verifiquei os documentos como deveria. Em relação à falta de fixação, é necessário regenerar o certificado do cliente; Atualizei minha resposta para cobrir isso.
Womble
11
Na verdade - meu arquivo cert é ns1.mydomain.com.peme seu CN também é ns1 ... Isso é "correto", certo? office.mydomain.comé o que está usando como nome do nó e, aparentemente, sempre que está tentando captar fatos ao analisar, em vez de usar o nome do certificado como o nome do nó. Talvez eu esteja sentindo falta de algo mais? Nenhum dos meus fatos parecem ser transmitido através do analisador quer info($fqdn)só mostra uma linha vazia no âmbito I colocá-lo.
gnarf
Não sei o que você fez, mas você conseguiu extrair algo realmente bom. Eu acho que você está por sua conta.
Womble
Outra atualização: consegui obter todas as coisas "pré-configuradas" por trás da LAN do escritório e colocar o novo servidor de nomes em funcionamento - assim que ele começou a usar o DNS reverso correto, todos os fatos apareceram corretamente ...
gnarf
5

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

gnarf
fonte
Isso funcionou para mim. (tinha que remover o diretório SSL como mencionado acima)
bwizzy
Isso funcionou bem para mim também, e também é apoiada pela documentação Puppet: puppetlabs.com/blog/resolving-dns-issues
DuffJ