Tag Archives: puppet

Puppet (Segunda parte: Manifiesto y Módulos)

Antes de completar el ejercicio vamos a definir dos conceptos principales en Puppet: los módulos y manifiestos.

Manifiesto: Puppet es  un sistema declarativo, en donde las operaciones son aplicadas y no ejecutadas, estas operaciones son definidas en lenguage puppet dentro de archivos de texto denominados manifiestos. Por cada servidor puppet existe un manifiesto central, definido en /etc/puppet/manifests/site.pp, donde se configuran todos los sitios (clientes), mediante un nodo para cada uno de ellos.

Módulo: Un módulo es una colección de recursos, clases, archivos, definiciones y plantillas fácilmente redistribuible usado para configurar Dnsmasq o Apache o un sitio de reportes o una aplicación en Python determinada.

Cada uno de estos se escribe en lenguaje Puppet, un lenguaje declarativo bastante sencillo basado en Ruby en el cuál podemos definir toda la implementación para nuestros clientes. Les recomiendo ampliamente que se den una vuelta por la documentación oficial sobre este lenguaje.

Vamos a definir nuestro módulo para Dnsmasq, que incluirá como recursos al paquete, el archivo dnsmasq.conf y el servicio dnsmasq.

Continue reading

Puppet (Primera parte: Instalación)

Uno de los proyectos encargados en mi nuevo empleo consiste en la administración y mantenimiento de clústers para simulaciones de ingeniería, cada uno de los componentes del clúster mantiene comunicación con un servidor que aloja las licencias de los paquetes utilizados, así como los detalles de las cuentas de usuarios. Por supuesto que administrar a todos los equipos individualmente es una tarea exhaustiva y propensa a errores, independientemente de los instrumentos de decidamos utilizar o crear, así que como primer paso me encargaron buscar una herramienta que permitiera mantener a los servidores sin necesidad de realizar la misma tarea repetitivamente, por ejemplo: tener que modificar la dirección IP del servidor de autenticación en PAM o instalar un nuevo paquete en todos los equipos.

Para mi fortuna existe Puppet, un software que debería ser la punta de lanza de los administradores y arquitectos de servidores. Éste nos permite manejar varios equipos desde un nodo central mediante definiciones de módulos en archivos de configuración, que pueden ser paquetes, archivos, servicios, etc, independientemente de la distribución. Obviamente, homogenizar la distribución a utilizar es preferible para mantener las mismas versiones y evitar errores en implementaciones de las ramas.

En esta serie vamos a utilizar Puppet para configurar Dnsmasq actuando como servidor DNS y DHCP detrás de diferentes redes, como un ejercicio para adentrarnos en el uso de esta herramienta, utilizando Debian tanto para el cliente como el servidor.

En esta primera parte instalaremos y configuraremos clientes y servidor.

Continue reading