Dispositivo de fantoches incapaz de obter certificado de emissor local

2

Eu instalei o Puppet 4.3 e o centos7 para usar o Puppet Device para gerenciar roteadores Cisco. O nome do host do servidor é "puppetmaster" (executando hostnamectl puppetmaster ) O servidor centos está executando o mestre e o agente de marionetes.

Depois de configurar tudo e configurar o device.conf quando executo o sudo puppet device --debug eu vejo esses erros:

Error: /File[/opt/puppetlabs/puppet/cache/devices/r1/facts.d]: Failed to generate additional resources using 'eval_generate': SSL_connect returned=1 errno=0 state=error: certificate verify failed: [unable to get local issuer certificate for /CN=puppetmaster]
Error: /File[/opt/puppetlabs/puppet/cache/devices/r1/facts.d]: Could not evaluate: Could not retrieve file metadata for puppet:///pluginfacts: SSL_connect returned=1 errno=0 state=error: certificate verify failed: [unable to get local issuer certificate for /CN=puppetmaster]

Eu posso executar puppet agent --test no servidor com sucesso:

sudo puppet agent --test
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for puppetmaster
Info: Applying configuration version '1449189804'

Aqui está meu /etc/puppetlabs/puppet/device.conf

[r1]
type cisco
url telnet://puppet:123456@r1/

Aqui está meu /etc/puppetlabs/puppet/puppet.conf

[master]
vardir = /opt/puppetlabs/server/data/puppetserver
logdir = /var/log/puppetlabs/puppetserver
rundir = /var/run/puppetlabs/puppetserver
pidfile = /var/run/puppetlabs/puppetserver/puppetserver.pid
codedir = /etc/puppetlabs/code
dns_alt_names = puppetmaster

[agent]
certname = puppetmaster
server = puppetmaster

Isso tem que ser algum tipo de problema de certificação, como uma incompatibilidade de nomes, mas não sei o que poderia estar causando isso. O agente está rodando no mesmo servidor que o master e eu configurei todas as configurações corretamente (pelo menos acho que eu fiz).

Aqui está o certificado retornado pelo fantoche:

 sudo puppet cert --print --all | grep CN
        Issuer: CN=Puppet CA: puppetmaster
        Subject: CN=puppetmaster

Aqui estão os certificados raw ca.pem e puppetmaster.pem:

openssl x509 -in /etc/puppetlabs/puppet/ssl/certs/ca.pem -noout -text | grep CN
        Issuer: CN=Puppet CA: puppetmaster
        Subject: CN=Puppet CA: puppetmaster
                DirName:/CN=Puppet CA: puppetmaster
openssl x509 -in /etc/puppetlabs/puppet/ssl/certs/puppetmaster.pem -noout -text | grep CN
        Issuer: CN=Puppet CA: puppetmaster
        Subject: CN=puppetmaster

Quando executo o openssl para verificar o certificado, vejo o mesmo erro:

sudo openssl verify -CApath /etc/puppetlabs/puppet/ssl/certs/ca.pem /etc/puppetlabs/puppet/ssl/certs/puppetmaster.pem

/etc/puppetlabs/puppet/ssl/certs/puppetmaster.pem: CN = puppetmaster
error 20 at 0 depth lookup:unable to get local issuer certificate

Eu confirmei as configurações e passei pelo processo para limpar os certificados (várias vezes ) mas sem dados.

    
por red888 04.12.2015 / 19:51

1 resposta

2

OK, entendi.

Como eu disse, limpei e regenerei os bonecos, mas o que eu não fiz foi claro:

/opt/puppetlabs/puppet/cache/devices/

O Puppet armazenou em cache um certificado antigo do dispositivo, por isso estava tentando usá-lo em vez de gerar um novo.

Depois de excluir o conteúdo dessa pasta, consegui executar puppet device

    
por 04.12.2015 / 20:32