problema do nome do host do fantoche


10

Pesquisei on-line e vejo que outras pessoas tiveram esse problema em outras listas / quadros. Quando executo o sudo puppetd --waitforcert 60 --test pela segunda vez após assinar o certificado no servidor mestre, recebo esse erro -

notice: Got signed certificate
warning: Certificate validation failed; considering using the certname configuration option
err: /File[/var/lib/puppet/lib]: Failed to generate additional resources during transaction: Certificates were not trusted: hostname was not match with the server certificate

Não sei se entendi qual é o problema ou como corrigi-lo. Então é por isso que pergunto.

Estou configurando o fantoche em dois servidores na minha LAN. O puppetmaster é nomeado 'puppet' e o outro servidor é nomeado 'puppetclient'. Coloquei puppet em / etc / hosts no puppetclient.

executando hostname -f exibirá puppet e pupperclient nos respectivos servidores. Não tenho certeza do que mais tentar. Alguém tem alguma idéia?

Respostas:


9

Parece que o certificado de mestre de marionetes foi criado quando o host recebeu o nome de algo diferente de "fantoche". Recrie o certificado e você deve ser bom.

O nome armazenado no certificado deve corresponder ao que você configurou no seu cliente (exatamente). Por exemplo, se você configurar seu cliente para conectar-se a "puppet.domain.com", receberá um erro se o certificado for denominado "fantoche" e vice-versa.


Isso aconteceu comigo há algumas horas atrás. Necessário o nome de domínio totalmente qualificado.
Pete TerMaat 28/05/09

anexar .local no cliente fez o truque. mesmo que o nome do host -f não o tenha mostrado. Obrigado!

1
Talvez haja uma maneira melhor, mas para mim, eu regenerado os certificados CA por rm -rf /var/lib/puppet/ssle reiniciando o puppetmaster
Peter Sankauskas

6

Se você quiser usar o DNS CNAME para o seu puppetmaster, poderá iniciá-lo usando:

puppetmaster --certname cname.domain.org

que fará com que o puppetmaster use em cname.domain.orgvez do nome de domínio totalmente qualificado padrão.


2

A --certname cname.domain.orgopção de sinalização parecia ter feito o truque para mim (no Amazon EC2)


1

você pode perguntar ao facter (facter fqdn) qual é o nome do host e ver se isso é consistente com o que você espera. Observe também (por padrão) / var / lib / puppet / ssl / e veja como são os certificados, se eles não tiverem os nomes de host corretos que podem ser o seu problema. Como o fantoche faz toda a comunicação por HTTPS, é bastante sensível à resolução e à nomeação de hosts.


1

Antes de instalar o Puppet nos clientes e no servidor designados, verifique o arquivo /etc/resolv.conf e verifique se a primeira entrada de domínio na linha "search" é o domínio no qual você deseja executar o Puppet. Por exemplo:

pesquise my.puppetdomain.com my.public.domain.com

nameserver 192.168.1.1 nameserver xxx.xxx.1.1

Durante a fase de instalação do Puppet, o servidor Puppet gerará seus certificados com base na primeira entrada de pesquisa no /etc/resolv.conf. Descobri isso da maneira mais difícil. Se você vir erros relacionados ao certificado em qualquer nó fantoche, execute as seguintes etapas:

1) Edite o /etc/resolv.conf e verifique se o primeiro domínio listado na linha "pesquisa" reflete o domínio em que você deseja que o Puppet seja executado.

2) Desinstale o puppet (deixe o diretório / etc / puppet intacto).

3) rm -rf / var / lib / fantoche

4) Reinstale o Puppet (isso irá gerar um novo diretório / var / lib / puppet).

5) Se estiver fazendo isso no servidor Puppet, execute / usr / sbin / puppetmasterd --mkusers (como alternativa, execute / usr / local / sbin / puppetmasterd --mkusers ). Isso irá gerar todos os arquivos necessários dentro de / var / lib / puppet, incluindo os novos certificados internos usando o nome de domínio apropriado.

6) Se estiver fazendo isso no cliente Puppet, inicie o Puppet no modo detalhado, com o sinalizador --waitforcert ativado: puppetd -server .puppetdomain.com --waitforcert 60 --test Esta etapa enviará uma solicitação de certificado ao servidor Puppet.

7) No servidor Puppet, liste os certificados em espera:

puppetca --list

Você deve ver o nome do host do cliente Puppet fazendo a solicitação:

puppetclient1.puppetdomain.com

8) No servidor Puppet, assine o certificado do cliente Puppet listado:

puppetca --sign puppetclient1.puppetdomain.com

Então você está pronto.

HTH ....


0

Puppet e puppetclient resolvem no DNS? Caso contrário, você pode editar o arquivo / etc / hosts para mapear os IPs e nomes de host. IIRC, você só precisa fazer isso no cliente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.