Está en la página 1de 10

Manual de uso para Puppet

Despliegue y configuración del gestor de configuración


(Puppet) 2
Introducción 2
¿Cómo funciona Puppet? 3
Despliegue de Puppet 3
Puppet DSL y paradigmas de programación 8
Despliegue y configuración del gestor de configuración
(Puppet)

Introducción

La gestión de configuración es un conjunto de metodologías y reglas que son utilizadas para


realizar el seguimiento del estado de construcción actual y el diseño de un sistema. Se utiliza
para mantener un registro del rendimiento, funciones, diseño y la información operativa de
cualquier sistema.

Ahora, Puppet es un software de administración de configuración de código abierto ampliamente


utilizado para la configuración, administración, implementación y orquestación de servidores de
diversas aplicaciones y servicios en toda la infraestructura de una organización. Puppet está
especialmente diseñado para administrar la configuración de sistemas Linux y Windows.
¿Cómo funciona Puppet?

Puppet, permite escribir un código simple llamado “manifest”, el cual puede ser implementado
automáticamente en cualquier servidor. Esto reduce el esfuerzo humano y hace que el proceso de
desarrollo sea rápido y eficaz.

Puppet permitirá definir configuraciones distintas para cada host, dependiendo de la necesidad
que se tenga. Conjunto a esto la herramienta permitirá monitorear continuamente los servidores
para confirmar si la configuración requerida existe o no y si no se modifica. En caso de
encontrarse un cambio en la configuración, la herramienta Puppet volverá a la configuración
predefinida en el host.

Despliegue de Puppet

Este desarrollo se desplegará en 3 máquinas virtuales, quedando distribuidas de la siguiente


manera (Ver tabla 1):

Nombre de la máquina Sistema Operativo Rol a cumplir

Puppet Ubuntu 16.04.5 LTS Puppet Master

puppetagent1 Ubuntu 16.04.5 LTS Puppet agent - Condor Master

puppetagent2 Ubuntu 16.04.5 LTS Puppet agent - Worker node


Tabla 1. Distribución de las máquinas virtuales

Se procede a ejecutar una serie de comandos, con el propósito de actualizar nuestro sistema a
través de sus repositorios. Se ejecuta el siguiente comando en cada una de las máquinas.

● sudo apt-get update


Esto tiene como propósito actualizar la lista de repositorios. Se debe tener en cuenta que aquí no
se instala ni actualiza ningún paquete. La lista actualizada proviene de los servidores con
repositorios definidos en el source.list (Ver ilustración 1).

Ilustración 1. Ejecución apt-get update

Una vez actualizada la lista de software disponible junto a su versión más reciente, se podrá
descargar e instalar aquellos paquetes que fueron ingresados en los repositorios (Ver ilustración
2).

● sudo apt-get upgrade

Ilustración 2. Ejecución apt-get upgrade

Antes de ejecutar la instalación de Puppet, se requiere tener una configuración previa en todas las
máquinas (Ver ilustración 3, 4, 5 y 6).

El siguiente comando se utiliza para establecer la zona horaria requerida en la máquina. Se


aclara que cada máquina perteneciente al pool de Puppet --Máquinas administradas por el
gestor de configuración Puppet-- deben tener la hora sincronizada, con el fin de evitar fallas en
la administración de configuración (Ver ilustración 3).

● sudo timedatectl set-timezone "America/Bogota"

Ilustración 3. Sincronización zona horaria

Utiliza el comando hostnamectl para establecer el nombre de host en cada máquina (Ver
ilustración 4).

● sudo hostnamectl set-hostname puppet

Ilustración 4. Configuración Hostname

Agrega los nombres de host correctos y las direcciones IP que se usarán más adelante en el
archivo / etc / hosts (Ver ilustración 5).

Ilustración 5. Edición del archivo “hosts”

Instala el agente puppet en cada máquina con el siguiente comando (Ver ilustración 6).
● sudo apt-get -y install puppet-agent

Ilustración 6. Instalación del agente Puppet

Solo en la máquina que funcionara como Puppet master, se instalará el paquete puppetserver,
quien permitirá verse ante los clientes Puppet como el master (Ver ilustración 7).

Ilustración 7. Instalación de Puppet server

Verifica que el servicio de puppetserver se encuentre habilitado en la máquina Puppet master


(Ver ilustración 8).

● sudo apt-get -y install puppetserver

Ilustración 8. Verificación del servicio Puppet server


En la máquina Puppet master, si existe un firewall en su sistema, debe abrir el puerto 8140 que
usa el servicio Puppet master por defecto. Ejecute el siguiente comando para permitir el puerto
en el firewall (Ver ilustración 9):

● sudo ufw allow 8140/tcp

Ilustración 9. Puerto 8140 habilitado

Con estos pasos tenemos instalado el servicio de Puppet en la máquina master del grupo Puppet.

Se aclara que estos pasos se deben realizar en el resto de las máquinas a supervisar. Finalizado
este proceso, continuamos con la configuración en los clientes puppet y posteriormente su
certificación por parte del puppet master.

Estos comando se ejecuta únicamente en los clientes Puppet.

Señalaremos en cada cliente Puppet quien será su Puppet master, modificando el archivo ubicado
en /etc/puppetlabs/puppet/puppet.conf añadiendo las siguiente líneas:

certname = puppetagent1

server = puppet.example.com

El cual uno será el hostname del cliente configurado y el otro es el puppet master declarado
respectivamente (Ver ilustración 10).
Ilustración 10. Edición del archivo “puppet.conf”

Guardamos la configuración y habilitamos el servicio puppet-agent (Ver ilustración 11).

● sudo systemctl enable puppet

Ilustración 11. Ejecución apt-get upgrade

Dado que se trata de una arquitectura cliente-servidor, el Puppet master debe aprobar una
solicitud de certificado para cada cliente Puppet. Verificamos la lista de certificados usando el
siguiente comando en la máquina Puppet master (Ver ilustración 12):

● sudo /opt/puppetlabs/puppet/bin/puppet cert list

Ilustración 12. Solicitud de certificados Puppet


Para firmar las solicitudes de certificado para varios nodos a la vez se usa el siguiente comando
(Ver ilustración 13):

● sudo /opt/puppetlabs/puppet/bin/puppet cert sign --all

Ilustración 13. Firma de certificados

Con esto concluimos la instalación y configuración de Puppet en cada máquina.

Puppet DSL y paradigmas de programación

Puppet usa un paradigma de programación declarativa. Por ejemplo:

Crear un usuario en el sistema: Se puede hacer usando el patrón de programación imperativo


mediante un script de shell: aquí especificamos cómo crear el usuario y que comandos usar en el
sistema operativo (Ver ilustración 14).

Ilustración 14. Script para crear un usuario


Sin embargo, se puede hacer usando el patrón de programación declarativa, en donde usando
solo unas pocas líneas de código de Puppet, lenguaje específico de dominio de Puppet (DSL) y
aún así lograr el mismo resultado (Ver ilustración 15).

Ilustración 15. Creación de usuario con Puppet

En la ilustración 15 tenemos la misma función del script expuesta en la ilustración 14, pero
resumido en unas pocas líneas su funcionalidad.

¿Cómo usar y escribir archivos manifest en Puppet?

Los archivos manifest de Puppet son aquellos donde se declaran todos los recursos, es decir,
servicios, paquetes o archivos que necesitan ser revisados ​y cambiados. Los manifest de Puppet
se crean en Puppet master y tienen la extensión .pp. Constan de los siguientes componentes:

Files: Son archivos de texto sin formato que se importarán y colocarán en la ubicación de
destino.

Resources: Los recursos representan los elementos que necesitamos evaluar o cambiar.
Los recursos pueden ser archivos, paquetes, etc.

Node definition: Es un bloque de código en Puppet donde se define toda la información y


definición del nodo cliente.

Templates: Las plantillas se utilizan para crear archivos de configuración en los nodos y se
pueden reutilizar más tarde. Clases: Las clases son lo que usamos para agrupar los diferentes
tipos de recursos.

También podría gustarte