2 votes

Marionnette ne signant pas le certificat ou ne recevant pas de nouvelles demandes

Je ne suis pas sûr de comment formuler la question, voici donc le problème:

J'ai une toute nouvelle installation de puppet-server et puppet utilisant la version 2.6.16 et fonctionnant sur 2 nœuds (puppet et puppet-agent, respectivement) en suivant les étapes sur http://docs.puppetlabs.com/guides/installation.html pour une boîte Linux (CentOS).

Sur la boîte puppet[-server], je lance puppetca -la et j'obtiens :

+ puppet (DB:50:1B:37:47:78:DA:F2:69:28:B7:E2:22:1B:C5:28) (alt names: DNS:puppet, DNS:puppet.abc.com)

(notez que puppet-agent n'est pas listé) ... aussi, aucun instance de puppet n'est listée avec puppet cert list

En signant la boîte avec puppetca --sign puppet, j'obtiens :

err: Could not call sign: Could not find certificate request for puppet

La même chose avec puppetca --sign puppet.abc.com

Il y a un puppet.pem dans les répertoires private_keys et certs. Le répertoire certificate_requests est vide. La signature automatique est désactivée.

Je serais ravi de fournir toute information additionnelle et apprécierais toute assistance.

Le fichier puppet.conf sur les deux machines est le suivant, sans commentaires :

[main]
  logdir = /var/log/puppet
  rundir = /var/run/puppet
  vardir = /var/lib/puppet
  factpath = $vardir/lib/facter
  ssldir = $vardir/ssl
  server = puppet.abc.com
  dns_alt_names = puppet, puppet.abc.com
  pluginsync = true

[agent]
  classfile = $vardir/classes.txt
  localconfig = $vardir/localconfig

[master]
  templatedir = var/lib/puppet/templates

MODIFICATION EN RAISON DES COMMENTAIRES

  • Le maître fonctionne
  • L'agent peut contacter le maître via le nom d'hôte
  • L'agent NE PEUT PAS se connecter en telnet au port 8140 sur le maître -- le maître écoute sur 0.0.0.0:8140 avec iptables et selinux désactivés
  • Le 14 mai 13h40:13 puppet-agent puppet-agent[25920]: (/File[/var/lib/puppet/lib]) Échec de génération de ressources supplémentaires en utilisant 'eval_generate' : SSL_connect a renvoyé=1 erreur=0 état=SSLv3 read serveur certificat B: échec de vérification du certificat Le 14 mai 13h40:13 puppet-agent puppet-agent[25920]: (/File[/var/lib/puppet/lib]) Impossible d'évaluer : SSL_connect a renvoyé=1 erreur=0 état=SSLv3 read server certificate B: certificate verify failed Element metadata du fichier non récupéré pour puppet://puppet.abc.com/plugins: SSL_connect a renvoyé=1 erreur=0 état=SSLv3 read server certificate B: certificate verify failed Le 14 mai 13h40:14 puppet-agent puppet-agent[25920]: Impossible de récupérer le catalogue depuis le serveur distant : SSL_connect a retourné=1 erreur=0 état=SSLv3 read server certificate B: certificate verify failed
  • puppet agent --test produit : dnsdomainname: Hôte inconnu info: Récupération du plugin err: /File[/var/lib/puppet/lib]: Échec de génération de ressources supplémentaires en utilisant 'eval_generate': SSL_connect a retourné=1 erreur=0 état=SSLv3 read server certificate B: échec de vérification du certificat err: /File[/var/lib/puppet/lib]: Impossible d'évaluer : SSL_connect a retourné=1 erreur=0 état=SSLv3 read server certificate B: échec de vérification du certificat Impossible de récupérer les métadonnées du fichier pour puppet://puppet.abc.com/plugins: SSL_connect a retourné=1 erreur=0 état=SSLv3 read server certificate B: échec de vérification du certificat dnsdomainname: Hôte inconnu err: Impossible de récupérer le catalogue depuis le serveur distant : SSL_connect a retourné=1 erreur=0 état=SSLv3 read server certificate B: échec de vérification du certificat avertissement: Pas de cache utilisé sur un catalogue en échec err: Impossible de récupérer le catalogue; saut de l'exécution Le 14 mai 13h40:14 puppet-agent puppet-agent[25920]: Utilisation du catalogue mis en cache
  • Netstat produit ruby/puppet en état LISTEN et l'agent en état TIME_WAIT

2 votes

Mon conseil, oubliez les commandes puppetca. C'est dépassé et ne fera que semer la confusion. Les versions modernes de Puppet, comme celle que vous utilisez, font tout via les sous-commandes puppet, telles que puppet cert. Consultez puppet help pour la liste des commandes disponibles.

2 votes

Les certificats étaient désynchronisés ... en émettant les instructions suivantes sur l'agent, le problème a été résolu : find /var/lib/puppet -type f -print0 |xargs -0r rm

9voto

wallyqs Points 1056

Toutes les demandes de signature ouvertes doivent être répertoriées dans puppet cert list sur le maître. S'ils n'apparaissent pas là, il est inutile d'essayer de les signer. Une fois signés, ils disparaissent de la liste et n'apparaîtront que dans puppet cert list --all.

Il semble que votre maître ne reçoive pas de demandes de signature de la part de l'agent, puisque votre liste est vide. Il existe un certain nombre de choses qui pourraient ne pas fonctionner. Commençons par celles-ci:

  • Le maître est-il en cours d'exécution?
  • Le nom d'hôte 'puppet' ou 'puppet.abc.com' est-il résolu par l'agent?
  • Le port TCP 8140 sur le maître est-il accessible depuis l'agent (essayez: telnet puppet 8140)?
  • Que dit le syslog de l'agent?
  • Essayez puppet agent --test sur l'agent, qui tentera de se connecter au maître et restera en premier plan pour afficher la sortie.

0 votes

Question ajustée avec les résultats de vos commentaires. Merci!

0 votes

Résolu le problème avec les étapes de dépannage ci-dessus ... donnant réponse. Merci!

0 votes

Puppet cert dépend fortement de DNS (FQDN). Assurez-vous d'avoir une entrée DNS et une entrée PTR correctes.

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