Instalar Puppet Master y Agente en Ubuntu 20.04

Puppet es un motor administrativo automatizado, gratuito y de código abierto, para los sistemas operativos Linux, Unix y Windows. Se utiliza para desplegar, configurar y gestionar servidores y realiza tareas administrativas como añadir usuarios, instalar paquetes y muchas más. Ayuda a los administradores de sistemas a liberar tiempo y espacio mental automatizando tareas en miles de máquinas físicas y virtuales. Utiliza un modelo cliente-servidor. El maestro de Puppet controla la información de configuración de los agentes de Puppet, mientras que los agentes de Puppet se comunican con el maestro de Puppet y obtienen sus perfiles de configuración.

En este tutorial, explicaremos cómo instalar un servidor y un agente Puppet en un servidor Ubuntu 20.04.

Requisitos previos

  • Dos servidores con Ubuntu 20.04.
  • Una contraseña de root configurada en ambos servidores.

Cómo empezar

En primer lugar, tendrás que actualizar todos los paquetes en los sistemas Puppet master y Puppet client. Puedes actualizarlos ejecutando el siguiente comando:

apt-get update -y

Una vez que todos los paquetes estén actualizados, puedes pasar al siguiente paso.

Configurar la resolución del nombre de host

A continuación, deberás configurar el nombre de host en ambos nodos. Para que cada nodo pueda comunicarse con el otro por su nombre de host. Puedes hacerlo editando el archivo /etc/hosts en ambos nodos:

nano /etc/hosts

Añade las siguientes líneas en ambos nodos:

puppet-master-ip puppetmaster puppet
puppet-client-ip puppetclient

Guarda y cierra el archivo cuando hayas terminado. A continuación, puedes pasar al siguiente paso.

Instalar el servidor Puppet

En primer lugar, tendrás que instalar el servidor Puppet en el nodo maestro. Por defecto, el paquete Puppet no está disponible en el repositorio por defecto de Ubuntu 20.04. Así que tendrás que instalar el repositorio de Puppet en tu servidor.

Primero, descarga la última versión de Puppet con el siguiente comando:

wget https://apt.puppetlabs.com/puppet6-release-focal.deb

Una vez descargado el paquete, instálalo ejecutando el siguiente comando:

dpkg -i puppet6-release-focal.deb

Una vez completada la instalación, actualiza el repositorio e instala el servidor Puppet ejecutando el siguiente comando:

apt-get update -y
apt-get install puppetserver -y

Después de instalar el servidor Puppet, tendrás que cambiar el tamaño de la asignación de memoria del proceso Java de Puppet. Puedes hacerlo editando el archivo /etc/default/puppetserver:

nano /etc/default/puppetserver

Cambia el tamaño de la memoria a 1g como se muestra a continuación:

JAVA_ARGS="-Xms1g -Xmx1g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

Guarda y cierra el archivo cuando hayas terminado. A continuación, inicia el servicio Puppet y permite que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start puppetserver
systemctl enable puppetserver

A continuación, puedes verificar el estado del servicio Puppet con el siguiente comando:

systemctl status puppetserver

Deberías ver el siguiente comando:

? puppetserver.service - puppetserver Service
     Loaded: loaded (/lib/systemd/system/puppetserver.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 09:33:55 UTC; 3s ago
    Process: 3673 ExecStart=/opt/puppetlabs/server/apps/puppetserver/bin/puppetserver start (code=exited, status=0/SUCCESS)
   Main PID: 3715 (java)
      Tasks: 42 (limit: 4915)
     Memory: 962.3M
     CGroup: /system.slice/puppetserver.service
             ??3715 /usr/bin/java -Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger -XX:OnOutOfMemoryError="kill>

Sep 05 09:33:08 puppetmaster systemd[1]: Starting puppetserver Service...
Sep 05 09:33:55 puppetmaster systemd[1]: Started puppetserver Service.

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar y configurar el Agente Puppet

En este punto, el servidor Puppet está instalado y configurado. Ahora, tendrás que instalar el agente de Puppet en el nodo cliente.

Primero, descarga e instala el repositorio de Puppet con el siguiente comando:

wget https://apt.puppetlabs.com/puppet6-release-focal.deb
dpkg -i puppet6-release-focal.deb

A continuación, actualiza el repositorio e instala el agente de Puppet ejecutando el siguiente comando:

apt-get update -y
apt-get install puppet-agent -y

Después de instalar el agente Puppet, tendrás que editar el archivo de configuración de Puppet y definir la información del Puppet master:

nano /etc/puppetlabs/puppet/puppet.conf

Añade las siguientes líneas:

[main]
certname = puppetclient
server = puppetmaster

Guarda y cierra el archivo cuando hayas terminado. A continuación, inicia el servicio del agente Puppet y habilítalo para que se inicie en el arranque con el siguiente comando:

systemctl start puppet
systemctl enable puppet

A continuación, verifica el estado de Puppet con el siguiente comando:

systemctl status puppet

Deberías obtener la siguiente salida:

? puppet.service - Puppet agent
     Loaded: loaded (/lib/systemd/system/puppet.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 09:43:15 UTC; 22s ago
   Main PID: 1435 (puppet)
      Tasks: 2 (limit: 2353)
     Memory: 52.8M
     CGroup: /system.slice/puppet.service
             ??1435 /opt/puppetlabs/puppet/bin/ruby /opt/puppetlabs/puppet/bin/puppet agent --no-daemonize

Sep 05 09:43:15 puppetagent systemd[1]: Started Puppet agent.

En este punto, el agente Puppet está instalado y configurado. Ahora puedes pasar al siguiente paso.

Firmar el certificado del agente de Puppet

Puppet utiliza una arquitectura cliente-servidor, por lo que tendrás que aprobar una solicitud de certificado para cada nodo del agente antes de poder configurarlo.

En el nodo maestro de Puppet, ejecuta el siguiente comando para listar todos los certificados:

/opt/puppetlabs/bin/puppetserver ca list

Deberías ver la siguiente salida:

Requested Certificates:
    puppetclient       (SHA256)  A4:9A:E9:87:8B:54:0A:4F:A0:78:65:1A:3C:99:B5:EC:31:9E:BB:4C:17:8A:50:16:E9:1E:3D:D6:27:74:89:85
    puppetmaster       (SHA256)  E9:25:4C:51:4E:47:D7:44:11:1F:C5:A9:4E:96:D9:E8:3A:EB:A0:01:48:06:B5:EF:3F:C4:09:03:90:3E:D8:2D

Ahora, firma todos los certificados con el siguiente comando:

/opt/puppetlabs/bin/puppetserver ca sign --all

Deberías obtener el siguiente resultado:

Successfully signed certificate request for puppetclient
Successfully signed certificate request for puppetmaster

Ahora, Puppet master puede comunicarse y controlar el nodo agente.

En el nodo agente de Puppet, prueba la comunicación entre Puppet master y el agente con el siguiente comando:

/opt/puppetlabs/bin/puppet agent --test

Si todo va bien, deberías obtener la siguiente salida:

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for puppetclient
Info: Applying configuration version '1599300398'
Notice: Applied catalog in 0.02 seconds

Conclusión

Enhorabuena! has instalado y configurado con éxito el maestro y el agente de Puppet en el servidor Ubuntu 20.04. Ahora puedes añadir varios agentes y gestionarlos fácilmente con Puppet.

También te podría gustar...