problema del nome host fantoccio


10

Ho cercato online e vedo che alcune altre persone hanno avuto questo problema su altri elenchi / schede. Quando eseguo sudo puppetd --waitforcert 60 --test per la seconda volta dopo aver firmato il cert sul server master ottengo questo errore-

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

Non sono sicuro di capire quale sia il problema o come risolverlo. Ecco perché lo chiedo.

Sto impostando il burattino su due server sulla mia LAN. Il burattinaio si chiama "fantoccio" e l'altro server si chiama "fantoccio". Ho inserito le marionette in / etc / hosts su puppetclient.

eseguendo hostname -f visualizzerà puppet e pupperclient sui rispettivi server. Non sono sicuro di cos'altro provare. Qualcuno ha qualche intuizione?

Risposte:


9

Sembra che il certificato del burattinaio sia stato creato quando l'host è stato nominato con un nome diverso da "burattino". Ricrea il certificato e dovresti essere bravo.

Il nome memorizzato nel certificato deve corrispondere a quello a cui hai configurato il tuo client (esattamente). Ad esempio, se configuri il tuo client per la connessione a "puppet.domain.com", riceverai un errore se il certificato è denominato "burattino" e viceversa.


Mi è successo questo poche ore fa. Necessario il nome di dominio completo.
Pete TerMaat,

aggiungendo .local sul client ha fatto il trucco. anche se hostname -f non l'ha mostrato. Grazie!

1
Forse c'è un modo migliore, ma per me ho rigenerato i certificati CA rm -rf /var/lib/puppet/ssle quindi riavviato il burattinaio
Peter Sankauskas,

6

Se desideri utilizzare DNS CNAME per il tuo burattinaio, puoi avviare il burattinaio usando:

puppetmaster --certname cname.domain.org

che farà usare il burattinaio cname.domain.orginvece del nome di dominio completo predefinito.


2

L' --certname cname.domain.orgopzione bandiera sembra aver fatto il trucco per me (su Amazon EC2)


1

puoi chiedere a facter (facter fqdn) qual è il nome host e vedere se è coerente con quello che ti aspetti. Dai anche un'occhiata (di default) / var / lib / puppet / ssl / e guarda come appaiono i certificati, se non hanno i nomi host corretti che potrebbero essere il tuo problema. Dato che il pupazzo fa tutte le sue comunicazioni su HTTPS è abbastanza sensibile alla risoluzione e alla denominazione dell'host.


1

Prima di installare Puppet sui client e sul server designati, controllare il file /etc/resolv.conf e verificare che la prima voce di dominio nella riga "cerca" sia il dominio in cui si desidera eseguire Puppet. Per esempio:

cerca my.puppetdomain.com my.public.domain.com

nameserver 192.168.1.1 nameserver xxx.xxx.1.1

Durante la fase di installazione di Puppet, il server Puppet genererà i suoi certificati in base alla prima voce di ricerca in /etc/resolv.conf. L'ho imparato a mie spese. Se vedi errori relativi al certificato su qualsiasi nodo fantoccio, procedi come segue:

1) Modifica /etc/resolv.conf e verifica che il primo dominio elencato nella riga "cerca" rifletta il dominio in cui vuoi che Puppet venga eseguito.

2) Disinstalla puppet (lascia intatta la directory / etc / puppet).

3) rm -rf / var / lib / puppet

4) Reinstalla Puppet (questo genererà una nuova directory / var / lib / puppet).

5) Se si esegue questa operazione sul server Puppet, eseguire / usr / sbin / puppetmasterd --mkusers (in alternativa, eseguire / usr / local / sbin / puppetmasterd --mkusers ). Questo genererà tutti i file necessari all'interno di / var / lib / puppet, inclusi i nuovi certificati interni usando il nome di dominio appropriato.

6) Se si esegue questa operazione sul client Puppet, avviare Puppet in modalità dettagliata, con il flag --waitforcert abilitato: puppetd -server .puppetdomain.com --waitforcert 60 --test Questo passaggio invierà una richiesta di certificato al server Puppet.

7) Sul server Puppet, elenca i certificati di attesa:

puppetca: lista

Dovresti vedere il nome host del client Puppet che effettua la richiesta:

puppetclient1.puppetdomain.com

8) Dal server Puppet, firma il certificato del client Puppet appena elencato:

puppetca --sign puppetclient1.puppetdomain.com

Allora hai finito.

HTH ....


0

Puppet e Puppetclient si risolvono entrambi in DNS? Altrimenti puoi modificare il file / etc / hosts per mappare gli IP e i nomi host. IIRC, dovresti solo fare questo sul client.

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.