Puppet, la herramienta para controlarlo todo

El artículo de hoy va sobre Puppet, una potente herramienta de gestión de configuración, últimamente muy en boga en los departamentos de sistemas informáticos. Está escrita en Ruby, es multiplataforma y utilizan una licencia open source.

puppet-image-mini

Puppet, la herramienta que buscabas

En los diferentes ecosistemas con los que se suele encontrar un departamento de sistemas, lo ideal es tener una herramienta centralizada, que te permita realizar diferentes tareas en paralelo en múltiples hosts o servidores. Puppet, está diseñada para administrar la configuración de sistemas similares a UNIX, esto es, por ejemplo, GNU Linux o FreeBSD, y también Microsoft Windows, de forma declarativa.

¿Cómo funciona?

El usuario tiene que describir los recursos del sistema y sus estados utilizando el lenguaje declarativo que le ofrece Puppet. Dicha información se almacena en unos ficheros denominados manifiestos. A través de una utilidad llamada “Facter”, se descubre la información. De ésta manera se compila los manifiestos en un catálogo específico del sistema que contiene los recursos y sus dependencias. Estos catálogos son ejecutados en el sistema de destino.

Un extracto de un manifiesto sería;

ejemplo-manifiesto-pupet

Su propio lenguaje

El producto se compone de un lenguaje declarativo para describir la configuración del sistema, que puede ser directamente o bien compilado en un catálogo, distribuido al sistema de destino, a través del paradigma cliente-servidor, utilizando una REST API. El agente utiliza proveedores específicos del sistema para aplicar el recurso especificado en los manifiestos. La capa de abstracción de recursos permite que los administradores puedan configurar desde usuarios, servicios o paquetes, sin necesidad de especificar los comandos específicos.

Instalación y uso

Aunque el producto está pensado para una relación cliente y servidor, también se puede utilizar en el propio host. Antes de realizar la instalación debemos cumplir con una serie de requisitos.

Para empezar en nuestro sistema operativo, que en éste caso es CentOS, que tiene asignado dos cores y 4 GB de memoria, debemos añadir el repositorio:

  1. sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm

Y una vez hecho actualizar e instalar:

  1. yum update
  2. sudo yum -y install puppetserver

Una vez instalado todavía no está funcionando, para ello primero debemos indicar que vamos a utilizar más memoria. Puppet está diseñado por defecto para utilizar 2GB de RAM. Si queremos podemos mejorar su eficiencia asignado más memoria, para ello debemos modificar el fichero /etc/sysconfig/puppetserver, y allí, en la línea:

  1. JAVA_ARGS="-Xms2g –Xmx2g"

Podemos indicarle que use tres:

  1. JAVA_ARGS="-Xms3g -Xmx3g"

Y guardamos. Para iniciar el servicio escribimos:

  1. systemctl start puppetserver

Para añadir al arranque escribimos:

  1. systemctl enable puppetserver

En el capítulo de hoy hemos visto en que consiste Puppet y cómo instalarlo en un servidor, en el siguiente veremos la instalación de un agente en un servidor cliente.

Instalar agente Puppet en cliente GNU Linux

Espero que os haya parecido interesante.

Nos leemos en la próxima

Fuentes | docs.puppet.com |DigitalOcean | Wikipedia