Frage PuppetDB: Der Befehl zum Ersetzen von Daten konnte nicht gesendet werden


Ich habe kürzlich ein Puppet-Agenten-Cert widerrufen / bereinigt, und dies scheint negative Auswirkungen in PuppetDB zu haben. Ich sehe, dass ein Fehler gemeldet wurde Hier mit einigen Anweisungen zur Behebung des Problems. Ein Benutzer hatte ein ähnliches Problem Hier, aber nichts davon funktioniert für mich.

Auf dem Server werden CentOS 6.2, Puppet 2.7.13 und Puppet DB 0.9 ausgeführt. Der Fehler ist:

root@harp:/etc/puppetdb/ssl> puppet agent --test
err: Cached facts for harp failed: Failed to find facts from PuppetDB at harp.mydomain.com:8081: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed.  This is often because the time is out of sync on the server or client
info: Loading facts in /etc/puppet/modules/dns/lib/facter/datacenter.rb
info: Caching facts for harp
err: Could not send report: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed.  This is often because the time is out of sync on the server or client
err: Could not run Puppet configuration client: Could not retrieve local facts: Failed to submit 'replace facts' command for harp to PuppetDB at harp.mydomain.com:8081: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed.  This is often because the time is out of sync on the server or client

NTP funktioniert ordnungsgemäß von dem, was ich sehe und die Datetime sieht gut aus. "Harfe" ist eigentlich der Puppet-Master-Server, es sollte also hier kein Zeitproblem zwischen Agent und Server geben, da sie gleich sind.

Altes Zertifikat:

root@harp:/etc/puppetdb/ssl> puppet cert list --all
+ harp  (DF:8F:65:36:58:4C:DE:66:2B:65:D1:E6:18:B7:F2:33)

Bereinigen und generieren Sie ein neues Zertifikat für den Agenten:

root@harp:/etc/puppetdb/ssl> puppet cert clean harp
notice: Revoked certificate with serial 18
notice: Removing file Puppet::SSL::Certificate harp at '/var/lib/puppet/ssl/ca/signed/harp.pem'
notice: Removing file Puppet::SSL::Certificate harp at '/var/lib/puppet/ssl/certs/harp.pem'
notice: Removing file Puppet::SSL::CertificateRequest harp at '/var/lib/puppet/ssl/certificate_requests/harp.pem'
notice: Removing file Puppet::SSL::Key harp at '/var/lib/puppet/ssl/private_keys/harp.pem'

root@harp:/etc/puppetdb/ssl> puppet agent --test
info: Creating a new SSL key for harp
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
info: Creating a new SSL certificate request for harp
info: Certificate Request fingerprint (md5): 72:5E:99:6A:DE:B0:76:BD:1A:7D:FD:DC:A9:E8:71:AD
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
Exiting; no certificate found and waitforcert is disabled

root@harp:/etc/puppetdb/ssl> puppet cert list
  harp (72:5E:99:6A:DE:B0:76:BD:1A:7D:FD:DC:A9:E8:71:AD)

root@harp:/etc/puppetdb/ssl> puppet cert sign harp
notice: Signed certificate request for harp
notice: Removing file Puppet::SSL::CertificateRequest harp at '/var/lib/puppet/ssl/ca/requests/harp.pem'

root@harp:/etc/puppetdb/ssl> puppet cert list --all
+ harp  (4A:D4:90:87:15:1B:D3:FD:A8:15:D9:C0:FB:08:5C:79)

root@harp:/etc/puppetdb/ssl> service puppetdb restart
Stopping puppetdb: /etc/init.d/puppetdb: line 77: kill: (8623) - No such process
                                                           [FAILED]
Starting puppetdb:                                         [  OK  ]

OK, dann starte erneut für ein gutes Maß:

root@harp:/etc/puppetdb/ssl> service puppetdb restart
Stopping puppetdb:                                         [  OK  ]
Starting puppetdb:                                         [  OK  ]

Führen Sie die SSL-Konfigurationsskript

root@harp:/etc/puppetdb/ssl> /usr/sbin/puppetdb-ssl-setup
cp: cannot stat `/var/lib/puppet/ssl/certs/harp.pem': No such file or directory

root@harp:/etc/puppetdb/ssl> ls -la /var/lib/puppet/ssl/certs
total 12
drwxr-xr-x 2 puppet root 4096 Jun 19 07:19 ./
drwxrwx--x 8 puppet root 4096 Apr 24 10:04 ../
-rw-r--r-- 1 puppet root 1854 Apr 24 10:04 ca.pem

OK, versuchen Sie es erneut für ein gutes Maß:

root@harp:/etc/puppetdb/ssl> /usr/sbin/puppetdb-ssl-setup
Certificate was added to keystore
Usage: pkcs12 [options]
where options are
-export       output PKCS12 file
-chain        add certificate chain
-inkey file   private key if not infile
-certfile f   add all certs in f
-CApath arg   - PEM format directory of CA's
-CAfile arg   - PEM format file of CA's
-name "name"  use name as friendly name
-caname "nm"  use nm as CA friendly name (can be used more than once).
-in  infile   input filename
...snip...
-CSP name     Microsoft CSP name
-LMK          Add local machine keyset attribute to private key

Es scheint nicht, dass die Keystores in / etc / puppetdb / ssl geändert / neu generiert wurden. An diesem Punkt läuft puppet agent --test führt zu den gleichen Fehlern und das erneute Starten von Puppet und Puppetdb hilft nicht.

Schlüsselspeicherinfo:

root@harp:/etc/puppetdb/ssl> keytool -list -keystore /etc/puppetdb/ssl/keystore.jks
Enter keystore password:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

harp.mydomain.com, May 25, 2012, PrivateKeyEntry,
Certificate fingerprint (MD5): 06:A8:D3:2A:70:F3:6D:34:62:91:45:22:8A:C4:A8:86
root@harp:/etc/puppetdb/ssl> keytool -list -keystore /etc/puppetdb/ssl/truststore.jks
Enter keystore password:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

puppetdb ca, May 25, 2012, trustedCertEntry,
Certificate fingerprint (MD5): 13:AD:D8:BC:42:40:47:BB:D2:5C:ED:3C:D1:78:26:88
root@harp:/etc/puppetdb/ssl> puppet cert --fingerprint ca harp.mydomain.com
ca 13:AD:D8:BC:42:40:47:BB:D2:5C:ED:3C:D1:78:26:88
err: Could not call fingerprint: Could not find a certificate or csr for harp.mydomain.com

root@harp:/etc/puppetdb/ssl> puppet cert --fingerprint ca harp
ca 13:AD:D8:BC:42:40:47:BB:D2:5C:ED:3C:D1:78:26:88
harp 4A:D4:90:87:15:1B:D3:FD:A8:15:D9:C0:FB:08:5C:79

Wie kann ich den Puppetdb Keystore tatsächlich regenerieren? Ich habe versucht, die Dateien in / etc / puppetdb / ssl / zu löschen, aber kein Glück.


6
2018-06-19 11:51


Ursprung




Antworten:


Ich habe es geschafft, kann aber nicht genau sagen, welche Schritte notwendig waren oder nicht.

Dieses Problem trat auf, weil die Authentifizierung auf mehreren Hosts langsam war oder hängen blieb und anscheinend mit Domänencontroller / DNS-Cache-Problemen zusammenhing. Entfernen domain mydomain.com Eintrag von /etc/resolv.conf über den Puppenmeister und die Agenten lösten das Problem, aber das verursachte Probleme mit bestehenden Marionetten-Zerteilen. ich rannte puppet cert clean --all auf dem Master zu versuchen, alle Zertifikate neu zu erstellen, aber das hat mit PuppetDB nicht gut gespielt.

Lösung

Alte Zertifikate auf Master löschen:

puppet cert clean --all

Alte Zertifikate auf allen Agenten löschen:

rm -rf /var/lib/puppet/ssl

Erstellen Sie PuppetDB-Keystores neu:

facter fqdn ist nach dem Entfernen nicht verfügbar domain foo.com von /etc/resolv.conf. Dies bewirkt puppetdb-ssl-setup still zu versagen.

Bearbeiten /usr/sbin/puppetdb-ssl-setup, fügen Sie ein Stück Code hinzu, um es einfach zu verwenden facter hostname ob facter fqdn ist leer:

# near line 10
fqdn=`facter fqdn`
# add this "if" section
if [ ! -n "$fqdn" ] ; then
  fqdn=`facter hostname`
fi

Berechtigungen beheben:

chown -R puppetdb:puppetdb /etc/puppetdb/ssl

Aktualisiere Passwörter in /etc/puppetdb/conf.d/jetty.ini mit neuem Keystore / Truststore-Passcode (gleicher Pass), den du bekommen kannst:

cat /etc/puppetdb/ssl/puppetdb_keystore_pw.txt

Starten Sie puppetdb neu

service puppetdb restart

Dann gehen Sie zu jedem Agenten und fordern Sie neue Zertifikate an und signieren Sie jeden auf dem Master.


4
2018-06-19 18:54



Für mich war das Töten und Neustarten von puppetdb genug, um dieses Problem zu lösen. - Daniël W. Crompton


Dies ist auch der Fall, wenn die Speichereinstellungen für puppetdb zu niedrig sind.

vim /etc/default/puppetdb

Bearbeiten Sie die Zeile

JAVA_ARGS="-Xmx192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/puppetdb/puppetdb-oom.hprof -Djava.security.egd=file:/dev/urandom"

soll werden

JAVA_ARGS="-Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/puppetdb/puppetdb-oom.hprof -Djava.security.egd=file:/dev/urandom"

und starte puppetdb neu

sudo service puppetdb restart

1
2017-08-04 12:10





Hatte ein ähnliches Problem. Lösung:

1.) entferne die pe-puppetdb pid-Datei auf dem Master 2.) Stoppen Sie den Pe-Puppetdb-Dienst auf dem Master 3.) Starten Sie den pe-puppetdb-Dienst auf dem Master warte 30 Sekunden.


0
2017-07-15 18:55