Precondiciones
Los siguientes ejemplos la estamos realizando con la instalación realizada en el post Instalar puppet agente en vagrant | CodigoElectronica
Manifiesto
En Puppet un manifiesto es un archivo que contiene el lenguaje de configuración que describe cómo deben configurarse los recursos, este archivo lo guardamos con una extención de .pp, en terminos generales, el manifiesto es lo más parecido a lo que uno podría considerar un programa Puppet que se construyen con la intención de crear o administrar cualquier máquina host.
Componentes de un manifiesto
Los componentes principales de un manifiesto son los siguientes:
- Recursos: los recursos son los componentes individuales que se administran en el manifiesto. Cada recurso tiene un tipo específico (por ejemplo, file, package, service, user) y atributos que describen su estado deseado (por ejemplo, nombre, modo, propietario, grupo).
- Clasificación: la clasificación es el proceso de agrupar recursos para que puedan ser administrados juntos. En Puppet, la clasificación se realiza mediante nodos, grupos y clases.
- Variables: las variables son valores que se pueden utilizar en el manifiesto para proporcionar información dinámica. Las variables se definen en un fichero de variables o en la línea de comandos de Puppet.
- Condicionales: las condicionales se utilizan para controlar el flujo del manifiesto y permiten que se tomen decisiones en función de las circunstancias. Los condicionales en Puppet se escriben utilizando los lenguajes de programación de Ruby y Puppet.
- Archivos de plantilla: los archivos de plantilla son archivos que contienen variables y lógica que se utilizan para generar archivos de configuración dinámicos. Las plantillas en Puppet se escriben utilizando el lenguaje de plantilla de ERB.
Primer manifiesto
Vamos a crear el primer manifiesto con el ejemplo mas sencillo que podemos ejecutar, imprimir por consola un hola mundo, Para ello crearemos el archivo mensaje.pp dentro de la carpeta 'puppet/manifests':
sudo nano /etc/puppetlabs/puppet/manifests/mensaje.pp
Colocamos el siguiente código en lenguaje declarativo:
notify {'greeting':
message => 'hola desde codigoelectronica.com'
}
Luego ejecutamos el archivo mensaje.ppde la siguiente forma:
sudo /opt/puppetlabs/bin/puppet apply /etc/puppetlabs/puppet/manifests/mensaje.pp
Donde mostrar e siguiente resultado:
Con esto mostraremos en la consola de salida mensajes que podemos mostrar para verificar los pasos de ejecución o un mensaje que queramos mostrar al usuario o dejar en los logs.
Como puede ver, Puppet ha aplicado el manifiesto. Lo hace en varios pasos:
- Crea (compila) un catálogo de Puppet a partir del manifiesto.
- Utiliza la información de dependencia y de pedido (que se tratará pronto) para determinar el orden de evaluación.
- Evalúa el recurso de destino en el nodo para determinar si se deben aplicar cambios.
- Crea, modifica o elimina el recurso: un mensaje.
Nota: fíjese que al ejecutar estamos colocando "/opt/puppetlabs/bin/puppet", esto se debe a que no esta registrado puppet en los comandos de uso rapido en la consola bash.