Cómo añadir Agentes Puppet a Foreman
En la primera guía, ya te mostramos la instalación y configuración de Capataz en Ubuntu Server y ahora te mostraré cómo añadir Agentes Puppet a Capataz.
Requisitos previos
- Puppet Master Foreman
- Privilegios de root
¿Qué vamos a hacer?
- Configurar Hosts
- Instalar y Configurar el Agente Puppet
- Firmar Certificados en el Foreman Puppet Master
- Probar
Paso 1 – Configurar Hosts
En primer lugar, tenemos que configurar el FQDN (Fully Qualified Domain Name) de los servidores del puppet agent.
Cambia el nombre de host del servidor utilizando el comando hostnamectl que se indica a continuación.
hostnamectl set-hostname client.hakase-labs.io
Después, edita el archivo ‘/etc/hosts’.
vim /etc/hosts
Cambia la dirección IP y el FQDN por los tuyos y pégalos en él.
10.9.9.20 server.hakase-labs.io server 10.9.9.21 client.hakase-labs.io client
Guárdalo y ciérralo.
Ahora prueba el host utilizando el siguiente comando y asegúrate de que el FQDN del servidor se resuelve con tu dirección IP válida.
ping $(hostname -f) -c 3
Paso 2 – Instalar y configurar el Agente Puppet
En este paso, vamos a instalar el Puppet Agent 5 en los servidores Ubuntu 18.04 y CentOS 7. Queremos añadir el repositorio de Puppet al sistema y, a continuación, instalar los paquetes del agente Puppet tanto en el servidor Ubuntu como en el CentOS.
– Instalar el agente Puppet en el servidor Ubuntu 18.04
Descarga el repositorio de paquetes y añádelo al sistema.
cd /tmp && wget https://apt.puppetlabs.com/puppet5-release-bionic.deb sudo dpkg -i puppet5-release-bionic.deb
Después, actualiza los repositorios de Ubuntu e instala los paquetes del agente puppet utilizando los siguientes comandos apt.
sudo apt update sudo apt install -y puppet-agent
– Instalar Puppet Agent en un servidor CentOS 7
Descarga el repositorio de paquetes y añádelo al sistema.
cd /tmp && wget https://yum.puppet.com/puppet5/puppet5-release-el-7.noarch.rpm rpm -ivh puppet5-release-el-7.noarch.rpm
Después, instala los paquetes del agente puppet utilizando el siguiente comando.
sudo yum install -y puppet-agent
Una vez finalizada la instalación, debemos editar la configuración por defecto de puppet y definir la configuración del agente.
Ve al directorio ‘/etc/puppetlabs/puppet’ y edita el archivo de configuración ‘puppet.conf’.
cd /etc/puppetlabs/puppet/ vim puppet.conf
Cambia el FQDN del servidor y el certname por los tuyos y pégalos en él.
[agent] server = server.hakase-labs.io certname = client.hakase-labs.io runinterval = 180 environment = production listen = false pluginsync = true report = true
Guarda y sal.
Después, ejecuta el servicio del agente puppet utilizando el siguiente comando.
sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
O, si es necesario, reinicia el servicio.
sudo systemctl restart puppet
El agente puppet está en funcionamiento tanto en servidores Ubuntu como CentOS.
Paso 3 – Firma las Solicitudes de Certificado de los Agentes Puppet
Para firmar las solicitudes de certificado de los agentes puppet, podemos utilizar el intérprete de comandos de terminal del servidor puppet master (en este caso es el propio servidor foreman) o utilizar el panel de control de foreman.
– Firmar solicitudes de certificado utilizando el intérprete de comandos del terminal
Inicia sesión en el servidor maestro puppet (en esta guía es el servidor foreman) y comprueba la solicitud de certificado utilizando el siguiente comando.
sudo /opt/puppetlabs/bin/puppetserver ca list
Ahora verás el certificado del nombre del cliente, fírmalo con el siguiente comando.
sudo /opt/puppetlabs/bin/puppetserver ca sign --certname client.hakase-labs.io
Y el certificado del agente títere se ha añadido al puppet master a través del servidor terminal.
– Firmar solicitudes de certificado utilizando el panel de control de Foreman
Haz clic en el menú«Infraestructura» de la izquierda y elige«Proxies inteligentes«.
Ahora selecciona las opciones«Certificados» del botón desplegable del servidor Foreman.
Ahora obtendrás el nombre del cliente que realiza peticiones en estado ‘pendiente’, haz clic en el botón‘Firmar‘.
Después, verifica los hosts del agente yendo a la página ‘Hosts’.
Dentro del menú «Hosts«, haz clic en«Todos los hosts» y asegúrate de que aparece el nombre del agente puppet en la lista de servidores, como se muestra a continuación.
Más abajo encontrarás detalles sobre el Agente Puppet de Ubuntu.
Paso 4 – Pruebas
En este tutorial, vamos a probar el servidor puppet foreman y el agente puppet para desplegar los servicios nginx y NTP en el host del agente puppet. Antes de empezar, tenemos que descargar los módulos puppet nginx y ntp en el servidor foreman y, a continuación, activar estos módulos y añadirlos al agente puppet.
– Descargar el módulo marioneta nginx
Descarga el módulo puppet nginx ejecutando el siguiente comando en el servidor puppet master foreman.
sudo /opt/puppetlabs/bin/puppet module install puppet/nginx
– Activa los Módulos Puppet
Después, importa el módulo nginx a través del panel de control de foreman.
Haz clic en el menú«Configurar» de la izquierda y en«Clases» de Puppet.
Haz clic en el botón«Importar entorno desde server.hakase-labs.io«, marca las clases disponibles del módulo y haz clic en«Actualizar«.
Ahora aparecerá el módulo Nginx en la lista.
– Añadir el Módulo Puppet al Host Agente
Haz clic en el menú«Hosts» de la izquierda, haz clic en«Todos los hosts» para obtener la lista de hosts disponibles.
Ahora haz clic en el botón«Editar» del host agente llamado «client.hakase-labs.io».
Ve a la pestaña«Clases Puppet«, añade los módulos «nginx» y «ntp» y haz clic en el botón«Enviar«.
Los módulos Nginx y NTP se han añadido al host agente.
Adicional:
Si quieres verificar las clases activas en los Hosts, simplemente haz clic en el botón‘YAML‘ en la información de detalles sobre el host y se te mostrará la fuente sin procesar de la configuración YAML.
– Aplicar y probar
Si quieres aplicar los cambios manualmente, puedes ejecutar el siguiente comando en los hosts del agente puppet.
sudo /opt/puppetlabs/bin/puppet agent --test
Cuando se haya completado, se mostrará el resultado como se indica a continuación.
Después, verifica el servicio nginx y ntp comprobando el puerto de la lista para asegurarte de que los puertos HTTP y NTP son utilizados por los servicios nginx y ntp.
netstat -plntu
Ahora puedes acceder al servidor web nginx en el nodo agente.
curl client.hakase-labs.io
Para verificar la configuración del servidor ntp, ejecuta el siguiente comando.
cat /etc/ntp.conf
Y se te mostrará la configuración ntp gestionada por Puppet.