Ich habe online gesucht und sehe, dass einige andere Personen dieses Problem auf anderen Listen / Boards hatten. Wenn ich sudo puppetd --waitforcert 60 --test zum zweiten Mal nach dem Signieren des Zertifikats auf dem Master-Server ausführe, wird folgende Fehlermeldung angezeigt:
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
Ich bin nicht sicher, ob ich das Problem verstehe oder wie ich es beheben kann. Deshalb frage ich.
Ich richte Puppet auf zwei Servern in meinem LAN ein. Der Puppenmeister heißt "Puppe" und der andere Server heißt "Puppenclient". Ich habe Puppet in / etc / hosts auf Puppetclient gesetzt.
Wenn Sie den Hostnamen -f ausführen, werden Puppet und Pupperclient auf den jeweiligen Servern angezeigt. Ich bin mir nicht sicher, was ich sonst noch versuchen soll. Hat jemand einen Einblick?
quelle
rm -rf /var/lib/puppet/ssl
neu generiert, indem ich den PuppenspielerWenn Sie DNS CNAME für Ihren Puppetmaster verwenden möchten, können Sie den Puppetmaster folgendermaßen starten:
Dadurch wird Puppetmaster
cname.domain.org
anstelle des standardmäßigen vollqualifizierten Domainnamens verwendet.quelle
Die
--certname cname.domain.org
Flag-Option schien den Trick für mich getan zu haben (auf Amazon EC2)quelle
Sie können facter (facter fqdn) nach dem Hostnamen fragen und prüfen, ob dies mit Ihren Erwartungen übereinstimmt. Schauen Sie sich auch (standardmäßig) / var / lib / puppet / ssl / an und sehen Sie, wie die Zertifikate aussehen, wenn sie nicht die richtigen Hostnamen haben, die Ihr Problem sein könnten. Da Puppet die gesamte Kommunikation über HTTPS übernimmt, reagiert es ziemlich empfindlich auf Auflösung und Hostnamen.
quelle
Überprüfen Sie vor der Installation von Puppet auf den angegebenen Clients und Servern die Datei /etc/resolv.conf und stellen Sie sicher, dass der erste Domäneneintrag in der Suchzeile die Domäne ist, unter der Puppet ausgeführt werden soll. Beispielsweise:
suche my.puppetdomain.com my.public.domain.com
Nameserver 192.168.1.1 Nameserver xxx.xxx.1.1
Während der Puppet-Installationsphase generiert der Puppet-Server seine Zertifikate basierend auf dem ersten Sucheintrag in der Datei /etc/resolv.conf. Ich habe das auf die harte Tour herausgefunden. Wenn auf einem Puppet-Knoten Zertifikatsfehler auftreten, führen Sie die folgenden Schritte aus:
1) Bearbeiten Sie die Datei /etc/resolv.conf und stellen Sie sicher, dass die erste Domain in der Zeile "Suchen" die Domain widerspiegelt, in der Puppet ausgeführt werden soll.
2) Deinstallieren Sie Puppet (lassen Sie das Verzeichnis / etc / Puppet intakt).
3) rm -rf / var / lib / puppet
4) Installieren Sie Puppet erneut (dies generiert ein neues Verzeichnis / var / lib / puppet).
5) Wenn Sie dies auf dem Puppet-Server ausführen, führen Sie / usr / sbin / puppetmasterd --mkusers aus (alternativ führen Sie / usr / local / sbin / puppetmasterd --mkusers aus ). Dadurch werden alle erforderlichen Dateien in / var / lib / puppet generiert, einschließlich der neuen internen Zertifikate unter Verwendung des richtigen Domänennamens.
6) Wenn Sie dies auf dem Puppet-Client ausführen, starten Sie Puppet im ausführlichen Modus mit aktiviertem Flag --waitforcert : puppetd -server .puppetdomain.com --waitforcert 60 --test Dieser Schritt sendet eine Zertifikatanforderung an den Puppet-Server.
7) Listen Sie auf dem Puppet-Server die wartenden Zertifikate auf:
Puppetca - Liste
Sie sollten den Hostnamen des Puppet-Clients sehen, der die Anforderung stellt:
pupetclient1.puppetdomain.com
8) Signieren Sie auf dem Puppet-Server das Zertifikat des gerade aufgelisteten Puppet-Clients:
Puppetca --Sign Puppetclient1.puppetdomain.com
Dann bist du fertig.
HTH ....
quelle
Lösen sowohl Marionette als auch Puppenclient in DNS auf? Wenn nicht, können Sie die Datei / etc / hosts bearbeiten, um die IPs und Hostnamen zuzuordnen. IIRC, Sie sollten dies nur auf dem Client tun müssen.
quelle