J'ai cherché en ligne et je vois que quelques autres personnes ont eu ce problème sur d'autres listes / forums. Lorsque j'exécute sudo puppetd --waitforcert 60 --test pour la 2e fois après avoir signé le certificat sur le serveur maître, j'obtiens cette erreur -
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
Je ne suis pas sûr de comprendre quel est le problème ou comment le résoudre. Voilà pourquoi je demande.
J'installe la marionnette sur deux serveurs sur mon LAN. Le puppetmaster est nommé 'puppet' et l'autre serveur est nommé 'puppetclient'. Je mets puppet dans / etc / hosts sur puppetclient.
l'exécution de hostname -f affichera puppet et pupperclient sur les serveurs respectifs. Je ne sais pas quoi d'autre essayer. Quelqu'un at-il une idée?
la source
rm -rf /var/lib/puppet/ssl
redémarrant ensuite le marionnettisteSi vous souhaitez utiliser DNS CNAME pour votre marionnettiste, vous pouvez démarrer le marionnettiste en utilisant:
qui utilisera puppetmaster
cname.domain.org
au lieu du nom de domaine complet par défaut.la source
L'
--certname cname.domain.org
option de drapeau semblait avoir fait l'affaire pour moi (sur Amazon EC2)la source
vous pouvez demander à facter (facter fqdn) quel est le nom d'hôte et voir si cela correspond à ce que vous attendez. Jetez également un coup d'œil (par défaut) / var / lib / puppet / ssl / et voyez à quoi ressemblent les certificats, s'ils n'ont pas les noms d'hôte corrects qui peuvent être votre problème. Étant donné que la marionnette fait toute sa communication via HTTPS, elle est assez sensible à la résolution et au nom d'hôte.
la source
Avant d'installer Puppet sur vos clients et serveurs désignés, vérifiez le fichier /etc/resolv.conf et vérifiez que la première entrée de domaine sur la ligne de "recherche" est le domaine sous lequel Puppet doit s'exécuter. Par exemple:
recherchez my.puppetdomain.com my.public.domain.com
serveur de noms 192.168.1.1 serveur de noms xxx.xxx.1.1
Pendant la phase d'installation de Puppet, le serveur Puppet générera ses certificats en fonction de la première entrée de recherche dans /etc/resolv.conf. Je l'ai découvert à la dure. Si vous voyez des erreurs liées au certificat sur un nœud de marionnette, procédez comme suit:
1) Modifiez le fichier /etc/resolv.conf et vérifiez que le premier domaine répertorié dans la ligne "recherche" reflète le domaine dans lequel Puppet doit s'exécuter.
2) Désinstallez la marionnette (laissez le répertoire / etc / puppet intact).
3) rm -rf / var / lib / puppet
4) Réinstallez Puppet (cela générera un nouveau répertoire / var / lib / puppet).
5) Si vous effectuez cette opération sur le serveur Puppet, exécutez / usr / sbin / puppetmasterd --mkusers (ou exécutez / usr / local / sbin / puppetmasterd --mkusers ). Cela générera tous les fichiers requis dans / var / lib / puppet, y compris les nouveaux certificats internes utilisant le nom de domaine approprié.
6) Si vous effectuez cette opération sur le client Puppet, démarrez Puppet en mode détaillé, avec l'indicateur --waitforcert activé: puppetd -server .puppetdomain.com --waitforcert 60 --test Cette étape enverra une demande de certificat au serveur Puppet.
7) Sur le serveur Puppet, listez les certificats en attente:
puppetca --list
Vous devriez voir le nom d'hôte du client Puppet qui fait la demande:
puppetclient1.puppetdomain.com
8) Depuis le serveur Puppet, signez le certificat du client Puppet que vous venez de lister:
puppetca --sign puppetclient1.puppetdomain.com
Alors vous avez terminé.
HTH ....
la source
Puppet et puppetclient se résolvent-ils tous les deux dans DNS? Sinon, vous pouvez modifier le fichier / etc / hosts pour mapper les adresses IP et les noms d'hôte. IIRC, vous ne devez effectuer cette opération que sur le client.
la source