Puppet es una herramienta de automatización de infraestructura utilizada para configurar y administrar sistemas a través de un lenguaje de configuración declarativo. Con Puppet, los administradores de sistemas pueden describir la configuración deseada de un sistema en un archivo de configuración y luego ejecutar un agente en el sistema para aplicar automáticamente la configuración. Esto permite una mayor consistencia y precisión en la configuración de sistemas, así como una mayor facilidad de implementación y actualización de cambios. mas información en ¿Qué es puppet? | CodigoElectronica
Entrono de trabajo
Programas
- Microsoft Windows [Versión 10.0.19044.2728]
- VirtualBox Versión 6.1.40 r154048 (Qt5.6.2)
- Vagrant 2.2.19, Instalar configurar vagrant virtualbox
- Ubuntu focal 20.04
- Puppet 6
Distribucion de las maquinas
Para este entorno de trabajo y el ejemplo que vamos a ejecutar, trabajaremos con Vagrant y VirtualBox, estos programas nos ayudaran a crear de forma rapida las maquinas virtuales, ademas de poder destruirlas si necesitamos volver a construir todo de nuevo.
En la siguiente imagen podemos ver la distribucion de las maquinas, el nombre y las IP´s de cada una de ellas.

Las maquinas tendrán la distribucion de Ubuntu focal cómo sistema operativo.
Carpeta y archivos de trabajo
Primero crearemos la carpeta de trabajo en donde guardaremos los archivos de Vagrant y donde se crean los temporal que que Vagrant necesita.

En esta carpeta creamos e archivo vagrantfile.
Archivo vagrantfile
Procedemos a explicar el contenido del archivo Vagrant file:
- Estamos usando Ubuntu focal (2004) para crear las maquinas.
- Definimos una maquina puppet, la cual tendrá la IP 192.168.33.10 en esta maquina server instalaremos Puppet.
- Definimos una maquina node01, la cual tendrá la IP 192.168.33.11 en esta maquina agente instalaremos Puppet.
Muy importante, hemos nombrado los hosts de las maquinas como puppet y node01, estos mismos nombre los vamos a respetar en la siguiente configuración que mencionaremos mas adelante.
Ejecutamos Vagrant
En la carpeta del proyecto, dentro de la consola de comandos ejecutamos:

Esto creara las máquinas en Vagrant con las caracteristicas descritas en vagrantfile.

Puppet server
Procedemos a realizar la configuración del servidor de Puppet, en este caso para la practica, vamos a instalar y configurar todo el servidor de Puppet desde cero y manualmente para que vean como se realiza esta instalación.
Ingresar a la shell de la maquina virtual de Vagrant por ssh.
Instalar puppet server
Nos guiaremos en la instalación con la documentación oficial Installing Puppet Server, primero descargamos el paquete de puppet correspondiente a la versión de Ubuntu, que la podemos encontrar en paquetes de puppet.com.
Primero descargaremos el paquete de Puppet 6 para Ubuntu Focal.
Ahora cargamos el paquete a el sistema de paquetes de Linux.
Actualizamos el listado de paquetes.
Realizamos la instalación de Puppet server.
Configuración de los hosts
Procedemos a agregar los hosts de la maquina puppet y de los nodos agentes, editamos el archivo hosts.
Agregamos las siguientes lineas, que son las IP de las maquinas.
Muy importante, los nombres de los hosts deben coincidir con el nombre de las maquinas creadas en VirtualBox
puppetserver
En este caso como estamos visualizando el entorno de trabajo, modificamos la siguiente linea del archivo puppetserver para disminuir la memoria que usara Puppet, en producción, este paso no es necesario
Accedemos al archivo puppetserver para hacer los cambios.
Buscamos la siguiente linea y cambiamos de 2g a 512m, como se muestra a continuación.
Nota: este cambio lo debemos hacer en la prueba virtual, ya que las maquinas solo tiene 1g de RAM, si lo dejamos sin cambiar Puppet no podra iniciar.
puppet.conf
Realizamos la configuración de Puppet conf.
Añadimos al final del archivo las siguientes lineas, para indicar los nombres de dominio de servidor de puppet.
Validar e iniciar puppetserver
Por ultimo ejecutamos los siguientes comandos en orden.
Para detener el servidor de Puppet.
Para iniciar el servidor de Puppet.
Verificar el estado del servidor de Puppet.
Habilitamos el servicio de puppet para que inicie el servidor de Puppet cuando inicie Ubuntu.
Puppet agente
Procedemos a realizar la configuración del agente de Puppet, en este caso para la practica, vamos a instalar y configurar todo el agente de Puppet desde cero y manualmente para que vean como se realiza esta instalación.
Para acceder a la maquina del agente, ejecutamos lo siguiente:
Instalar puppet master
Nos guiaremos en la instalación con la documentación oficial Installing Puppet Server, primero descargamos el paquete de puppet correspondiente a la versión de Ubuntu, que la podemos encontrar en paquetes de puppet.com.
Primero descargaremos el paquete de Puppet 6 para Ubuntu Focal.
Ahora cargamos el paquete a el sistema de paquetes de Linux.
Actualizamos el listado de paquetes.
Realizamos la instalación de Puppet agent.
Configuración de los hosts
Procedemos a agregar los hosts de la maquina puppet y de los nodos agentes, editamos el archivo hosts.
Muy importante, los nombres de los hosts deben coincidir con el nombre de las maquinas creadas en VirtualBox
puppet.conf
Realizamos la configuración de puppet.
Añadimos al final del archivo las siguientes lineas.
Validar puppet agente
Por ultimo ejecutamos los siguientes comandos en orden.
Para detener el servidor del agente.
Para iniciar el servidor de agente.
Para ver el estado del servidor del agente.
Habilitamos el servicio de puppet para que inicie el servidor de Puppet cuando inicie Ubuntu.
Generar los certificados
Los agentes cuando se conectan por primera vez al servidor, solicitaran la firma de certificado de puppet. El servidor debe verificar y firmar este certificado.
Despues de validar los certificados el agente buscará los catálogos del maestro y los aplicara a los nodos del agente con regularidad.
Para realizar la configuración de los certificador procedemos con los siguiente pasos.
Desde el nodo agente realizamos el primer llamado al servidor

En el nodo maestro procedemos a iniciar la firma, con el siguiente comando, aceptamos todas las solicitudes de los agentes.

Con el siguiente comando, podemos ver los certificados pendientes por firmar.

Podemos ver todos los certificados firmados con el sigiente comando.

Al revisar el nodo agente con el comando agent --test observamos que a se conecta el agente al servidor para solicitar los cambios a aplicar.

Opcional, podemos firmar los certificados manualmente de la siguiente forma.
Ejemplo de prueba
Vamos a crear un ejemplo simple para validar que todo esta correcto.
Nodo servidor
Editamos el siguiente archivo
Colocamos lo siguiente
En el nodo agente ejecutamos
Podemos ver que aplica los cambios creados desde el servidor

Otros comandos
sudo /opt/puppetlabs/bin/puppet apply --modulepath=./modules ./manifests/default.pp
Referencias
Cómo instalar Puppet en Ubuntu 20.04 - ochobitshacenunbyte
¿Cómo instalar Puppet 6 en Ubuntu 18? (geekflare.com)