Puppet: il nome del nodo sembra dipendere da DNS inverso?


20

Mi sembra di riscontrare un piccolo problema nel capire come farlo funzionare. Ho un nuovo server che sto costruendo seduto dietro l'ufficio NAT al lavoro, il suo dns inverso è mappato office.mydomain.com, ma voglio che la macchina sia ns2.mydomain.comper il bene delle marionette.

snippet nodes.pp:

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

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

E il mio "puppet.conf" sul client:

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

Il mio syslog sul server riporta:

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

Come posso farlo afferrare la configurazione per ns2.mydomain.comsenza fare qualcosa del genere:

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

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

AGGIORNAMENTO : questo problema sembra causare anche altri problemi. Ad esempio se io info("$fqdn")mentre la macchina è seduta dietro office.mydomain.comil fatto fqdn è vuoto, così come il $operatingsystem. È quasi come se i fatti non venissero scoperti correttamente. C'è forse un problema NAT? Ci sono suggerimenti per rintracciare questa causa di questo problema?

Risposte:


26

Aaah, rilevamento hostname Puppet. Che incubo...

Per impostazione predefinita, quale nome verrà utilizzato per trovare quale nodedefinizione utilizzare si basa sul contenuto del fatto fqdn. Ciò a cui effettivamente si riferisce dipende da alcune cose diverse, e sì, il DNS inverso è uno di questi - ed è preferito rispetto al nome host della macchina!

Tuttavia, questo nome (di solito) si applica solo al momento della generazione del certificato. In realtà stai abusando della node_namevariabile: dovrebbe essere impostata su "cert" o "facter". Anche il fqdnparametro è obsoleto.

Quello che in realtà vuole fare è impostare il certnameparametro sul client per il nome del nodo che si desidera utilizzare, e quindi impostare node_namea cert(o semplicemente lasciarlo fuori, dal momento che certè l'impostazione predefinita). Questo prenderà il nome del nodo dalla CN del certificato che il client presenta e il certnameparametro si assicura che sia impostato su qualcosa di ragionevole piuttosto che qualunque faccia decida di inventare da sola. Sfortunatamente, dal momento che hai già creato certs "sbagliati", dovrai rigenerare quei certs ( rm -rf /var/lib/puppet/sslsul client e rieseguire Puppet) dopo aver impostato la configurazione, in modo che i certs giusti vengano creati e utilizzati.

Se tutto ciò sembra un po 'complicato, hai ragione - lo è. Benvenuto in Puppet.


Ehilà - così guardando burattinaio e burattino - entrambi hanno node_name=cert, aggiornato cert_name=ns1.mydomain.come facter fqdnritorna ns1.mydomain.comsul client ma sto ancora finendo con gli stessi messaggi di errore office.mydomain.com.
Gnarf,

1
ri: certname, hai ragione, ho sbagliato a ricordare e non ho controllato i documenti come avrei dovuto. Per quanto riguarda la mancanza di fissazione, è necessario rigenerare il certificato client; Ho aggiornato la mia risposta per affrontarla.
womble

1
In realtà - il mio file cert è ns1.mydomain.com.peme anche il suo CN è ns1 ... È "corretto" giusto? office.mydomain.comè quello che sta usando come nome del nodo, e apparentemente ogni volta che cerca di raccogliere fatti durante l'analisi, invece di usare il nome cert come nome del nodo. Forse mi manca qualcos'altro? Nessuno dei miei fatti sembra essere trasmesso al parser o info($fqdn)mostra solo una linea vuota nell'ambito che ho inserito.
Gnarf,

Non so che cosa hai fatto, ma sei riuscito a disfare qualcosa di veramente buono. Penso che tu sia da solo.
womble

Un altro aggiornamento: sono riuscito a ottenere tutte le cose "pre-installazione" da dietro la lan dell'ufficio e mettere in funzione il nuovo nameserver - non appena ha iniziato a utilizzare il DNS inverso corretto, tutti i fatti sono stati mostrati correttamente ...
gnarf

5

Mi sembra di avere buona fortuna (anche se ci sono ancora alcuni casi di test che voglio vedere) nella modifica /etc/hostsper elencare il fqdn desiderato in 127.0.0.1 come prima opzione. Sembra che lo stia rilevando correttamente / passando poi i fatti. Anche se sembra che debba ancora creare un nodo chiamato office.mydomain.comche erediti il ​​nodo che desidero.


Questo ha funzionato per me. (ha dovuto rimuovere la directory ssl come menzionato sopra)
bwizzy,

Questo ha funzionato bene anche per me ed è supportato anche dalla documentazione Puppet: puppetlabs.com/blog/resolving-dns-issues
DuffJ
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.