Estoy intentando implementar Foreman para permitirnos administrar y aprovisionar servidores para los clientes que administramos. Instalé Foreman en una ubicación central y luego instalé un Foreman Smart Proxy dentro de una de las redes de clientes, todo está funcionando bien (Puppet remoto). los agentes pueden conectarse a mi proxy inteligente y mi servidor central Foreman puede ver los datos), sin embargo, ahora quiero aprovisionar nuevas máquinas virtuales (a través de vCenter). Instalé foreman-vmware
y configuré mi perfil de recursos informáticos, creé una entrada para mi plantilla de VM, pero cuando creo un nuevo host a través de Foreman y le digo que clone desde mi plantilla, se cuelga esperando que el nodo esté disponible, supongo que así puede ser. SSH para finalizar la configuración, mi problema es que el servidor Foreman no tendrá una conexión a la nueva VM, esperaba que la nueva VM (que tiene el agente Puppet instalado) estuviera configurada para conectarse a mi proxy inteligente y terminar de configurarse de esa manera?
¿Me he equivocado en mi diseño? ¿Alguien puede ayudarme a diseñar la solución adecuada para mí?
No puedo crear un nuevo servidor DHCP, DNS y TFTP en la red del cliente porque puede interferir con los servicios DHCP y DNS existentes.
gracias ben
Respuesta1
tl;dr: No funcionará actualmente, el aprovisionamiento SSH proviene del servidor Foreman.
Tenemos una configuración similar, donde tenemos una instancia pública/centralizada de Foreman/Puppet a la que conectamos varios clientes "pequeños". En nuestro caso, ni siquiera instalé un "proxy inteligente" en la red del cliente. De hecho, el personal de TI del cliente me proporcionó credenciales SSH en una instalación mínima de CentOS 6.x (¿efectivamente como implementar una imagen?). En Foreman, simplemente creé la nueva VM como "Bare Metal" y luego copié el script de finalización de la pestaña "Plantillas" de la pantalla de detalles del Host y lo pegué en la VM (tuve que usar VPN para SSH en la máquina cliente). ). En su caso, probablemente podría hacer algo similar, pero cualquier paso "manual" suele estar mal visto.
Aquí hay algunas ideas aleatorias que tuve mientras pensaba en esto:
Tal vez pueda descubrir cómo usar "cloud-init" y luego podrá "aprovisionar" (ejecutar un script en) la VM sin que el servidor Foreman pueda conectarse mediante SSH. No estoy seguro de cómo funcionaría eso con ESXi y probablemente requeriría algún "código personalizado" :)
Quizás configure un servidor OpenVPN en el servidor Foreman y configure sus imágenes para que la VPN se conecte automáticamente al servidor Foreman. Eso tiene algunas ventajas en el sentido de que no es necesario exponer el títere/capataz a Internet, pero nuevamente, probablemente habría algún código personalizado involucrado al tratar de descubrir la IP VPN del host para SSH. Algunos clientes también podrían considerarlo una vulnerabilidad, especialmente si intentan cumplir con PCI.
Cree un nuevo módulo que permita una configuración "SSH vía", de modo que el servidor Foreman envíe SSH a un host específico y luego a la IP del cliente deseada (
ssh -t viaHost ssh $HOST_ADDRESS
) durante el proceso de aprovisionamiento. Por supuesto, si sigue ese camino, probablemente también podría convertirlo en una operación de proxy inteligente, donde en lugar de intentar realizar SSH desde el servidor Foreman, le pediría a un proxy inteligente que lo hiciera.
Todas estas son soluciones potenciales, pero no creo que ninguna funcione actualmente. Podría ser una buena idea presentar algunas solicitudes de funciones enhttp://projects.theforeman.org/projects/foreman/issues
~Tommy