Frage Puppe: Knotenname scheint von umgekehrten DNS abhängig zu sein?


Es scheint mir, dass ich ein kleines Problem habe, wenn ich verstehe, wie ich das umsetzen kann. Ich habe einen neuen Server, den ich hinter dem Büro NAT bei der Arbeit baue, seine umgekehrten DNS-Karten zu office.mydomain.com, aber ich will, dass die Maschine ist ns2.mydomain.com um der Marionette willen.

Knoten.pp Schnipsel:

node 'ns2.mydomain.com' inherits basenode {
  info('ns2.mydomain.com')
}

node 'office.mydomain.com' inherits basenode {
  info('office.mydomain.com')
}

Und meine 'puppet.conf' auf dem Client:

[main]
#was node_name=ns2.mydomain.com
#was fqdn=ns2.mydomain.com
certname=ns2.mydomain.com
node_name=cert

Mein Syslog auf dem Server meldet:

Sep 16 22:59:12 support puppetmasterd[2800]: Host is missing hostname and/or domain: office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: (Scope(Node[office.mydomain.com])) office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: Compiled catalog for office.mydomain.com in 0.03 seconds
Sep 16 22:59:12 support puppetmasterd[2800]: Caching catalog for ns2.mydomain.com

Wie kann ich dafür sorgen, dass es die Konfiguration übernimmt? ns2.mydomain.com ohne etwas in der Art zu tun:

node 'ns2.mydomain.com' inherits basenode {
  info('ns2.mydomain.com')
}

node 'office.mydomain.com' inherits 'ns2.mydomain.com' {
  info('office.mydomain.com')
}

AKTUALISIEREN: Dieses Problem scheint auch andere Probleme zu verursachen. Zum Beispiel wenn ich info("$fqdn") während die Maschine hinten sitzt office.mydomain.com die Tatsache ist leer, ebenso wie die $operatingsystem. Es ist fast so, als würden die Fakten nicht richtig entdeckt. Gibt es vielleicht ein NAT-Problem? Gibt es Vorschläge, diese Ursache für dieses Problem aufzuspüren?


20
2017-09-17 03:03


Ursprung




Antworten:


Aaah, Puppet-Hostname-Erkennung. Was ein Alptraum...

Standardmäßig wird welcher Name verwendet, um das zu finden node Die zu verwendende Definition basiert auf dem Inhalt der fqdn-Tatsache. Was Das Tatsächlich ist Maps abhängig von ein paar verschiedenen Dingen, und ja, Reverse-DNS ist einer von ihnen - und es wird gegenüber dem eigenen Hostnamen des Rechners bevorzugt!

Dieser Name (normalerweise) gilt jedoch nur zur Zertifikatserstellungszeit. Du missbrauchst den node_name Variable - sie sollte auf "cert" oder "facter" gesetzt werden. Das fqdn Parameter ist ebenfalls veraltet.

Was du tatsächlich Ich möchte das tun certname Parameter auf dem Client zu dem Knotennamen, den Sie verwenden möchten, und dann festlegen node_name zu cert (oder einfach weglassen, seit cert ist der Standard). Dies wird den Knotennamen aus dem CN des Zertifikats, das der Client präsentiert, und der certname Der Parameter stellt sicher, dass der Wert auf etwas Vernünftiges eingestellt ist und nicht auf irgendeinen Faktor, der sich selbst entscheidet. Da Sie bereits "falsche" Zertifikate erstellt haben, müssen Sie diese Zertifikate neu generieren (rm -rf /var/lib/puppet/ssl auf dem Client und führen Sie Puppet erneut aus, nachdem Sie die Konfiguration eingerichtet haben, damit die richtigen Zertifikate erstellt und verwendet werden.

Wenn das alles ein wenig kompliziert klingt, hast du recht - so ist es. Willkommen bei Marionette.


26
2017-09-17 12:07



Hey, da - so auf Puppenspieler und Puppe schauend - haben beide node_name=cert, aktualisierte cert_name=ns1.mydomain.com und facter fqdn kehrt zurück ns1.mydomain.com auf dem Client bekomme ich aber immer noch die gleichen Fehlermeldungen über office.mydomain.com. - gnarf
re: certname, du hast Recht, ich habe mich schlecht erinnert und die Dokumente nicht überprüft, wie ich es hätte tun sollen. In Bezug auf die fehlende Fixierung müssen Sie das Client-Zertifikat neu generieren. Ich habe meine Antwort aktualisiert, um das zu behandeln. - womble♦
Eigentlich - meine Cert-Datei ist ns1.mydomain.com.pem und sein CN ist auch ns1 ... Das ist "richtig" oder? office.mydomain.com ist das, was es als seinen Knotennamen verwendet, und offensichtlich immer dann, wenn es versucht, Fakten beim Parsen zu erfassen, anstatt den Cert-Namen als Knotennamen zu verwenden. Vielleicht vermisse ich etwas anderes? Keiner meiner Fakten scheint auch auf den Parser übertragen zu werden info($fqdn) zeigt nur eine leere Zeile in dem Bereich, in dem ich es eingefügt habe. - gnarf
Ich weiß nicht, was du getan hast, aber du hast es geschafft, etwas gut zu knacken. Ich denke du bist alleine. - womble♦
Ein weiteres Update: Ich habe es geschafft, all das Zeug "vor dem Setup" hinter das Office-LAN zu bekommen und den neuen Nameserver live zu bringen - sobald es mit dem richtigen Reverse-DNS angefangen hat, sind alle Fakten richtig aufgetaucht ... - gnarf


Ich scheine Glück zu haben (obwohl es immer noch ein paar Testfälle gibt, die ich sehen möchte) /etc/hosts um die gewünschte fqdn unter 127.0.0.1 als erste Option aufzulisten. Es scheint, es richtig zu erkennen / Fakten dann zu übergeben. Obwohl es scheint, muss ich noch einen Knoten namens erstellen office.mydomain.com das erbt den Knoten, den ich will.


5
2017-09-18 21:17



Das hat für mich funktioniert. (musste das SSL-Verzeichnis wie oben erwähnt entfernen) - bwizzy
Das hat mir auch gut getan und wird auch von der Puppet-Dokumentation unterstützt: puppetlabs.com/blog/resolving-dns-issues - DuffJ