webentwicklung-frage-antwort-db.com.de

Marionettenagent kann Server nicht finden

Ich bin ein Neuling in der Marionette, nehme es aber schnell auf. Heute habe ich ein Problem, wenn ich Folgendes ausführen möchte:

$ puppet agent --no-daemonize --verbose --onetime

**err: Could not request certificate: getaddrinfo: Name or service not known
Exiting; failed to retrieve certificate and waitforcert is disabled**

Es scheint, dass der Agent nicht weiß, zu welchem ​​Server eine Verbindung hergestellt werden soll. Ich könnte nur --server in der Befehlszeile angeben, aber das ist für mich nicht von Nutzen, wenn dieser als Dämon in der Produktion ausgeführt wird. Ich gebe stattdessen den Servernamen in /etc/puppet/puppet.conf so an:

[main]
    server = puppet.<my domain>

Ich habe habe einen DNS-Eintrag für puppet.<my domain> und wenn ich Dig puppet.<my domain>, sehe ich, dass der Name richtig aufgelöst wird.

Die gesamte Marionettendokumentation, die ich gelesen habe, besagt, dass der Agent standardmäßig versucht, sich mit einem Puppenmaster unter puppet zu verbinden, und Ihre Optionen sind Host-Trickery oder machen das Richtige, erstellen einen CNAME in DNS und bearbeiten die puppet.conf entsprechend getan haben.

Was fehlt mir? Jede Hilfe wird sehr geschätzt!

23
Kent Rancourt

D'oh! Sie müssen Sudo, um dies zu tun! Dann funktioniert alles.

56
Kent Rancourt

Ich musste das --server-Flag verwenden:

Sudo puppet agent --server=puppet.example.org
3
bmaupin

In meinem Fall bekam ich den gleichen Fehler, aber es lag an dem cert, das am Knoten auf dem Puppetmaster-Server signiert werden sollte.

um ausstehende Zertifikate zu prüfen, gehen Sie folgendermaßen vor:

marionetten-Zertifizierungsliste

"node.domain.com" (SHA256) 8D: E5: 8A: 2 *******

unterschreibe das cert an den Knoten:

marionetten-Zertifizierungszeichen node.domain.com

0
Vadim Sluzky

Ich hatte tatsächlich den gleichen Fehler, aber ich verwendete die zwei lernende Marionette vm und versuchte, den Befehl 'Marionettenagent - test' auszuführen. 

Ich habe das Problem gelöst, indem ich die Datei/etc/hosts auf dem Master- und dem Agenten-VM und der Zeile geöffnet habe 

***.***.***.*** learn.localdomain learn puppet.localdomain puppet

Die IP-Adresse (die Sternchen) war ursprünglich eine Zufallszahl. Ich musste diese Nummer auf beiden VMs so ändern, dass sie die IP-Adresse des Master-Knotens war.

Ich denke, für erfahrene Benutzer ist es ratsam, die Datei/etc/hosts zu überprüfen, um sicherzustellen, dass die IP-Adressen für Master und Agent nicht nur übereinstimmen, sondern mit der IP-Adresse des Masters übereinstimmen.

für andere Noobs wie mich ist es mein Rat, die Dokumentation klarer zu lesen. Dies war ein Schritt im "Einrichten eines Agenten-VM" -Prozesses, bei dem ich xD total vermisst habe 

0
scottyseus

Hatte heute dasselbe Problem bei puppet 2.6 bei CentOS 6.4 Alles, was ich zur Lösung des Problems tat, bestand darin, die üblichen Dinge wie hosts und resolv.conf zu überprüfen, um sicherzustellen, dass sie wie erwartet waren (verglichen mit einem funktionierenden Server).

  1. Entfernte Verzeichnis/var/lib/puppet rm -rf /var/lib/puppet
  2. Zertifikat auf dem Puppenspielmeister puppetca --clean servername gelöscht
  3. Netzwerk neu gestartet service network restart
  4. Marionette wieder ausgeführt

Obwohl die resolv.conf identisch mit dem Arbeitsserver war, hat puppet die resolv.conf aktualisiert und das Zertifikat sofort erneut signiert und alle libet-Dateien der Puppets ersetzt. 

Danach war alles gut. 

0
Chris Gillatt