Redes y Sistemas

Automatizar tareas con Ansible, Chef y Puppet

Conoce Ansible y Puppet, y automatiza tareas para ahorrarte tiempo en tu trabajo.

Publicado el 24 de Febrero de 2016
Compartir

En nuestro curso de configuración de servidores web podréis ver , entre otras muchas cosas, cómo se puede gestionar desde una única consola de comandos la instalación simultánea en varios equipos de una paquetería determinada.

Para esta tarea se usarán tres de las herramientas dedicadas a esto de la automatización de procesos que más se suelen solicitar en el mercado laboral, por lo que para que las vayáis conociendo aquí os dejo un breve resumen de cada una de ellas.

Ansible

Ansible es una herramienta open source dedicada al despliegue de aplicaciones en equipos remotos, ofreciendo principalmente para los servidores una vía de acceso rápido y seguro. Se nos da un framework común a todos los nodos que queramos incluir en el servicio a ejecutar pudiendo trabajar con cada equipo con unos niveles de acceso diferentes unos de otros. Utiliza una misma configuración por defecto para todos los nodos pero podemos modificarla según nuestras necesidades.

Ansible trabaja con los conocidos como playbooks, que podremos aplicar sobre diferentes sistemas para llevar a cabo instalaciones simultáneas con un único comando.

Deberemos considerar usar Ansible si valoramos nuestro tiempo por encima de todo, puesto que la agilidad que nos ofrecerá esta herramienta es increíble si en nuestra lista de tareas existen bastantes equipos a los que atender con actualizaciones, parches, correcciones, instalaciones de nuevos servicios…

Ansible es una herramienta open source, por lo que podremos hacer libre uso de esta, no obstante si deseamos contar con soporte de los desarrolladores, podremos obtener una licencia para hasta 100 equipos por 5000$ al año.

Imagen 0 en Automatizar tareas con Ansible, Chef y Puppet
 
Pros:
 
  • No requiere aplicaciones de terceros pues cuenta con un cliente de conexión remota ssh.

  • Rápida curva de aprendizaje.

  • La estructura y funcionamiento en base a playbooks es clara y fácilmente entendible.

  • Código mucho más depurado que otras herramientas de similares funciones.

  • Nos ofrece la opción de incluir variables de registro en cada despliegue, pudiendo así aplicar diferentes parámetros en cada equipo.

Contras:

  • Es menos potente que otras herramientas de funcionamiento similar.

  • Aunque su curva de aprendizaje es muy rápida, es bastante molesto tener que echar mano de la documentación con demasiada asiduidad.

  • Se hace ligeramente complicado ver qué valores se aplican a las variables dentro de los playbooks.

  • No hay mucha coherencia entre los formatos de entrada, salida y los archivos de configuración.
     
  • La velocidad se ve resentida a veces y puede afectar al rendimiento que debería ofrecer.

 

Chef

Chef es una herramienta de código abierto para la gestión y configuración que se centró principalmente en los desarrolladores como usuarios objetivos. Trabaja con un modelo maestro-cliente en la que se requerirá un equipo independientes desde el que controlar el nodo ‘maestro’.

Está desarrollado con Ruby on Rails, que será aquel que deberemos usar para desarrollar módulos a implementar en Chef. Es una aplicación muy transparente a la hora de mostrar qué tarea está llevando a cabo en cada momento, pero su sintaxis es muy estricta, por lo que deberemos asegurarnos de escribir de la forma determinada los comandos oportunos.

Deberemos considerar integrar Chef en nuestro entorno de trabajo si tenemos cierta experiencia previa con Git, así como conocimientos medios de Ruby on Rails para poder corregir fallos de algún módulo, modificarlos o desarrollar otros que realicen una función determinada.

Especialmente indicado para equipos destinados a labores de desarrollo de software, así como para aquellas empresas que les gusta apostar por herramientas con cierta trayectoria, comprobadas y abaladas por otras tantas y para un entorno de trabajo heterogéneo.

Como comentaba antes, es una herramienta open source, no obstante, al igual que Ansible, cuenta con versiones ‘estándar’ y ‘premium’, que a un precio comprendido entre los 6$ y los 6.75$ por nodo y mes, nos ofrecerá soporte para cualquiera de nuestras incidencias.

Imagen 1 en Automatizar tareas con Ansible, Chef y Puppet

Pros:

  • Amplia colección de módulos y configuraciones preestablecidas
    .
  • Al estar desarrollado entorno a Git, nos ofrece un control de versiones bastante robusto y funcional.

  • Cuenta con la herramienta ‘Knife’ (cuchillo), un cliente SSH que aliviará las cargas de trabajo en instalaciones pesadas.

Contras:

  • La curva de aprendizaje es demasiado inclinada siempre y cuando no estemos familiarizados con Ruby.

  • No es una herramienta indicada para gestionar grandes paquetes de código en entornos muy complejos.

Puppet

Estamos ante la herramienta de gestión de configuraciones remotas por excelencia. A lo largo de los años se ha ido haciendo un hueco en los entornos más difícilmente tratables, por lo que ha demostrado con creces su capacidad y potencial. Además se trata de una aplicación open source de cuyo código podremos hacer uso en nuestros proyectos.

Está desarrollado con Ruby, pero trabaja internamente con un DSL (Domain Scripting Language) más parecido a JSON.

Al igual que en el caso de Chef, estamos ante una herramienta que trabaja con maestro-cliente pero aplicando un enfoque de trabajo basado en modelos. El diseño del código de Puppet funciona como una lista de dependencias que puede ayudar a hacer las cosas mucho más simples o a complicar la situación gravemente. Todo dependerá de la configuración que le apliquemos.

Puppet es sin duda la opción ideal si lo que buscamos es una herramienta con cierta madurez y sobretodo que sea lo más estable posible, y como comentaba anteriormente, esta herramienta es open source, por lo que podremos acceder a su código y hacer uso de él, y además también podremos adquirir una licencia de 112$ por nodo y año (precio al que habrá que restar algunos descuentos que se pueden llegar a ofertar por volumen de nodos).

Imagen 2 en Automatizar tareas con Ansible, Chef y Puppet

Pros:

  • Una muy bien estructurada comunidad de soporte además del propio personal de la compañía desarrolladora.

  • Una interfaz mucho más madura con soporte para la mayoría de Sistemas Operativos.

  • La instalación y configuración inicial hacen del proceso de iniciación algo extremadamente sencillo.

  • Su interfaz web es una de las más completas que podemos encontrar entre el software de gestión.

  • Sus reportes o logs son de lo más detallados, por lo que nos será fácil determinar qué ha podido fallar o en qué hemos podido viajar.

Contras:

  • Para realizar tareas más complejas, deberemos echar mano de Ruby, por lo que un conocimiento bajo-medio de Ruby on Rails nos sacará de más de un apuro.

  • Menos soporte para los módulos desarrollados con la versión más pura de Ruby.

  • A consecuencia del uso de DSL y un diseño de trabajo que no se centra en la simplicidad, su base de código puede aumentar de tamaño incontroladamente, pasando a ser más complejo de manejar. Es por esto su curva de aprendizaje es tan inclinada y lenta.

 


Compartir este post

También te puede interesar...

Especialista en Automatización DevOps

Especialista en Automatización DevOps

17 horas y 57 minutos · Carrera

Conviértete en un especialista DevOps y da un salto en tu lista

Tecnología

Qué es Ansible

20 Junio 2017 Mario Pérez
Fundamentos Generales: Orquestación y Automatización IT

Fundamentos Generales: Orquestación y Automatización IT

46 minutos y 25 segundos · Curso

Aprende los fundamentos generales sobre automatización y orquestación en el ámbito IT y conoce cómo puede incrementar tu productividad como DevOps o ingeniero de sistemas.

  • DevOps
Artículos
Ver todos