Puppet es un motor administrativo automatizado gratuito y de código abierto para los sistemas operativos Linux, Unix y Windows. Se utiliza para implementar, configurar y administrar servidores y realiza tareas administrativas, como agregar usuarios, instalar paquetes y muchas más. Ayuda a los administradores de sistemas a liberar tiempo y espacio mental mediante la automatización de tareas en miles de máquinas físicas y virtuales. Utiliza un modelo cliente-servidor. Donde el maestro de Puppet controla la información de configuración para los agentes de Puppet mientras que los agentes de Puppet hablan y extraen los perfiles de configuración del maestro de Puppet.
En este tutorial, explicaremos cómo instalar un servidor y agente Puppet en un servidor Ubuntu 20.04.
Requisitos
- Dos servidores con Ubuntu 20.04.
- Se configura una contraseña raíz en ambos servidores.
Cómo empezar
Primero, deberá actualizar todos los paquetes en los sistemas Puppet master y Puppet client. Puede actualizarlos ejecutando el siguiente comando:
apt-get update -y
Una vez que todos los paquetes estén actualizados, puede continuar con el siguiente paso.
Configurar resolución de nombre de host
A continuación, deberá configurar el nombre de host en ambos nodos. Entonces, cada nodo puede comunicarse entre sí por nombre de host. Puede hacerlo editando el archivo /etc/hosts en ambos nodos:
nano /etc/hosts
Agregue las siguientes líneas en ambos nodos:
puppet-master-ip puppetmaster puppet puppet-client-ip puppetclient
Guarde y cierre el archivo cuando haya terminado. Luego, puede continuar con el siguiente paso.
Instalar servidor de marionetas
Primero, deberá instalar el servidor Puppet en el nodo principal. De forma predeterminada, el paquete Puppet no está disponible en el repositorio predeterminado de Ubuntu 20.04. Por lo tanto, deberá instalar el repositorio de Puppet en su servidor.
Primero, descargue 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álelo ejecutando el siguiente comando:
dpkg -i puppet6-release-focal.deb
Una vez completada la instalación, actualice el repositorio e instale el servidor Puppet ejecutando el siguiente comando:
apt-get update -y
apt-get install puppetserver -y
Después de instalar el servidor de Puppet, deberá cambiar el tamaño de asignación de memoria del proceso Java de Puppet. Puede hacerlo editando el archivo /etc/default/puppetserver:
nano /etc/default/puppetserver
Cambie 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"
Guarde y cierre el archivo cuando haya terminado. Luego, inicie el servicio Puppet y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:
systemctl start puppetserver
systemctl enable puppetserver
A continuación, puede verificar el estado del servicio Puppet con el siguiente comando:
systemctl status puppetserver
Debería 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 haya terminado, puede continuar con el siguiente paso.
Instalar y configurar Puppet Agent
En este punto, el servidor Puppet está instalado y configurado. Ahora, deberá instalar el agente Puppet en el nodo del cliente.
Primero, descargue e instale 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, actualice el repositorio e instale el agente de Puppet ejecutando el siguiente comando:
apt-get update -y
apt-get install puppet-agent -y
Después de instalar el agente de Puppet, deberá editar el archivo de configuración de Puppet y definir la información maestra de Puppet:
nano /etc/puppetlabs/puppet/puppet.conf
Agregue las siguientes líneas:
[main] certname = puppetclient server = puppetmaster
Guarde y cierre el archivo cuando haya terminado. Luego, inicie el servicio del agente Puppet y habilítelo para que se inicie en el arranque con el siguiente comando:
systemctl start puppet
systemctl enable puppet
A continuación, verifique el estado de Puppet con el siguiente comando:
systemctl status puppet
Deberías obtener el siguiente resultado:
? 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 de Puppet está instalado y configurado. Ahora, puede continuar con el siguiente paso.
Firmar certificado de agente títere
Puppet utiliza una arquitectura cliente-servidor, por lo que deberá aprobar una solicitud de certificado para cada nodo de agente antes de que pueda configurarlo.
En el nodo maestro de Puppet, ejecute el siguiente comando para enumerar todos los certificados:
/opt/puppetlabs/bin/puppetserver ca list
Debería ver el siguiente resultado:
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, firme todo el certificado 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 del agente.
En el nodo del agente de Puppet, pruebe la comunicación entre el maestro y el agente de Puppet con el siguiente comando:
/opt/puppetlabs/bin/puppet agent --test
Si todo está bien, debería obtener el siguiente resultado:
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
¡Felicidades! ha instalado y configurado con éxito el maestro y el agente de Puppet en el servidor Ubuntu 20.04. Ahora puede agregar fácilmente múltiples agentes y administrarlos fácilmente con Puppet.