problema de nombre de host de la marioneta

10

Busqué en línea y veo que otras personas han tenido este problema en otras listas / tableros. Cuando ejecuto sudo puppetd --waitforcert 60 --prueba por segunda vez después de firmar el certificado en el servidor maestro, aparece este error-

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

No estoy seguro de entender cuál es el problema o cómo solucionarlo. Por eso pregunto.

Estoy configurando una marioneta en dos servidores en mi LAN. El puppetmaster se llama 'puppet' y el otro servidor se llama 'puppetclient'. Puse el títere en / etc / hosts en puppetclient.

ejecutando hostname -f mostrará puppet y pupperclient en los respectivos servidores. No estoy seguro de qué más probar. ¿Alguien tiene alguna idea?

quanta
fuente

Respuestas:

9

Parece que el certificado de puppetmaster se creó cuando el host recibió un nombre diferente a "puppet". Recrea el certificado y deberías ser bueno.

El nombre almacenado en el certificado debe coincidir con lo que configuró su cliente para conectarse (exactamente). Por ejemplo, si configura su cliente para conectarse a "puppet.domain.com", obtendrá un error si el certificado se llama "puppet" y viceversa.

diq
fuente
Esto me sucedió hace unas horas. Necesitaba el nombre de dominio completo.
Pete TerMaat
agregar .local en el cliente hizo el truco. aunque hostname -f no lo mostró. ¡Gracias!
1
Quizás haya una mejor manera, pero para mí, rm -rf /var/lib/puppet/sslregeneré los certificados de CA y luego reinicié al titiritero
Peter Sankauskas, el
6

Si desea usar DNS CNAME para su puppetmaster, puede iniciar el puppetmaster usando:

puppetmaster --certname cname.domain.org

lo que hará que puppetmaster use en cname.domain.orglugar del nombre de dominio completamente calificado predeterminado.

Martín
fuente
2

La --certname cname.domain.orgopción de la bandera parecía haber hecho el truco para mí (en Amazon EC2)

quanta
fuente
1

puede preguntarle a facter (facter fqdn) cuál es el nombre de host y ver si es coherente con lo que espera. También eche un vistazo a (var) / var / lib / puppet / ssl / y vea cómo se ven los certificados, si no tienen los nombres de host correctos, ese puede ser su problema. Dado que Puppet hace toda su comunicación a través de HTTPS, es bastante sensible a la resolución y al nombre del host.

Palo
fuente
1

Antes de instalar Puppet en sus clientes y servidores designados, verifique el archivo /etc/resolv.conf y verifique que la primera entrada de dominio en la línea de "búsqueda" es el dominio en el que desea que Puppet se ejecute. Por ejemplo:

buscar my.puppetdomain.com my.public.domain.com

servidor de nombres 192.168.1.1 servidor de nombres xxx.xxx.1.1

Durante la fase de instalación de Puppet, el servidor de Puppet generará sus certificados en función de la primera entrada de búsqueda en /etc/resolv.conf. Descubrí esto de la manera difícil. Si ve errores relacionados con el certificado en cualquier nodo títere, realice los siguientes pasos:

1) Edite /etc/resolv.conf y verifique que el primer dominio listado en la línea de "búsqueda" refleje el dominio en el que desea que Puppet se ejecute.

2) Desinstale puppet (deje el directorio / etc / puppet intacto).

3) rm -rf / var / lib / puppet

4) Vuelva a instalar Puppet (esto generará un nuevo directorio / var / lib / puppet).

5) Si realiza esto en el servidor Puppet, ejecute / usr / sbin / puppetmasterd --mkusers (alternativamente, ejecute / usr / local / sbin / puppetmasterd --mkusers ). Esto generará todos los archivos necesarios dentro de / var / lib / puppet, incluidos los nuevos certificados internos con el nombre de dominio adecuado.

6) Si realiza esto en el cliente Puppet, inicie Puppet en modo detallado, con el indicador --waitforcert activado: puppetd -server .puppetdomain.com --waitforcert 60 --test Este paso enviará una solicitud de certificado al servidor Puppet.

7) En el servidor Puppet, enumere los certificados en espera:

puppetca --list

Debería ver el nombre de host del cliente Puppet que realiza la solicitud:

puppetclient1.puppetdomain.com

8) Desde el servidor Puppet, firme el certificado del cliente Puppet que acaba de aparecer:

puppetca --sign puppetclient1.puppetdomain.com

Entonces ya terminaste.

HTH ....


fuente
0

¿Puppet y puppetclient se resuelven en DNS? Si no, puede editar el archivo / etc / hosts para asignar las direcciones IP y los nombres de host. IIRC, solo debe hacer esto en el cliente.

slillibri
fuente