2 votes

Puppet Device ne parvient pas à obtenir le certificat de l'émetteur local

J'ai installé Puppet 4.3 et centos7 afin d'utiliser Puppet Device pour gérer les routeurs Cisco. Le nom d'hôte du serveur est "puppetmaster" (en exécutant hostnamectl puppetmaster ) Le serveur centos exécute le maître et l'agent Puppet.

Après avoir tout installé et configuré device.conf, lorsque j'exécute sudo Puppet device --debug, je vois ces erreurs :

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]

Je peux courir puppet agent --test sur le serveur avec succès :

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'

Voici mon /etc/puppetlabs/Puppet/device.conf

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

Voici mon /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

Il doit s'agir d'un problème de certitude, comme une incompatibilité de nom, mais je ne sais pas ce qui peut en être la cause. L'agent est exécuté sur le même serveur que le maître et j'ai défini toutes les configurations correctement (du moins je le pense).

Voici le certificat renvoyé par Puppet :

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

Voici les certitudes brutes ca.pem et 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

Lorsque je lance openssl pour vérifier le certificat, je vois la même erreur :

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

J'ai confirmé les paramètres de configuration et j'ai parcouru le processus de nettoyage des certitudes (plusieurs fois) mais pas de résultat.

2voto

Ankush Points 407

OK, j'ai compris.

Comme je l'ai dit, j'ai nettoyé et régénéré les certificats Puppets, mais ce que je n'ai pas fait, c'est nettoyer :

/opt/puppetlabs/puppet/cache/devices/

Puppet mettait en cache un ancien certificat pour le dispositif et essayait d'utiliser celui-ci au lieu d'en générer un nouveau.

Après avoir supprimé le contenu de ce dossier, j'ai pu exécuter puppet device

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X