Introducción a Chef

julio 26, 2016 — por David Mataró0

main

Assoc. Cat. VirtualitzacióCloudDevOpsMetodologíaVirtualizacion

Introducción a Chef

julio 26, 2016 — por David Mataró0

Después de unos primeros posts hablando de Devops y automatización hoy entraremos en materia describiendo la arquitectura y conceptos básico de Chef, la plataforma que utilizamos para automatizar infraestructuras.

Chef es una plataforma que te permite automatizar cómo construyes, despliegas y gestionas tu infraestructura. Chef te permite definir tu infraestructura con software y una vez definida con software esta puede ser versionada, testeada y además es repetible. En el post anterior sobre la gestión de la configuración o configuration management (CM), ya describimos las ventajas de disponer de una infraestructura versionable, testeable y repetible.
Chef esta formado por un lenguaje de programación y por un conjunto de herramientas que puedes utilizar en múltiples plataformas y entornos. El objetivo de Chef, es asegurar que el estado de un servidor cumple con la configuración definida mediante un programa. La arquitectura de Chef se compone de tres elementos básicos, una o mas estaciones de trabajo, un servidor de Chef y los servidores a gestionar. chef_introducion

  • Workstation: La estación de trabajo es desde donde todos los elementos de Chef son gestionados, incluidos los servidores que forman nuestra infraestructura. La estación de trabajo esta compuesta por un conjunto de herramientas como knife, kitchen o chef-zero entre otras, la cuales se instalan mediante el paquete ChefDk, que puede descargarse de la web de Chef para Mac OS X, Windows y Linux.
  • Nodes: Los nodos son los servidores físicos o virtuales o en cloud que se gestionan con Chef. Cada nodo o servidor tiene instalado un cliente (chef-client) que es quien se encarga de asegurar que el servidor tiene el estado deseado y definido mediante Chef.
  • Chef Server: Es un servidor central que contiene toda las información para que un nodo pueda instalarse y configurarse según la programación realiza en Chef. Cuando el cliente de chef chef-client se ejecuta en un nodo o servidor, conecta con el servidor de Chef para obtener toda la información para configurar el servidor.

 

Antes de empezar a trabajar en Chef, hay ciertos conceptos que hay que entender y que ahora vamos a ver.

  • Nodes:  Son los servidores físicos, virtuales o en cloud que hay que gestionar.
  • Resource: Los recursos son elementos del sistema a configurar. Estos son elementos de red, ficheros, directorios, scripts, usuarios, grupos, paquetes de software, etc.
  • Recipe: Los recipes son ficheros de configuración o programación que describe los recursos a utilizar y el estado que estos deben tener. En los recipe se define el software a instalar, se gestionan los ficheros de configuración, se ejecutan otros recipes y se despliegan aplicaciones entre otras cosas.
  • Cookbook: Podemos ver los cookbook como contenedores de recipes o visto de otra forma, las recipes se agrupan en cookbooks. Los cookbook además de recipes también contienen otros elementos utilizados por las recipes como templates, ficheros y otros recursos.
  • Run list: Un Run list es una lista ordenada de recipes a ejecutar por el cliente de chef.
  • Roles: Los roles representan un tipo de servidor de tu infraestructura. Por ejemplo, un servidor web, un servidor de correo o un servidor de base de dados. Cada role incluyen una “Run list” ordenada con los recipe a ejecutar para instalar y configurar el role en un servidor.
  • Environments: Son los diferentes entornos donde podemos instalar un servidor como por ejemplo, el entorno de desarrollo, de test o de producción. Estos definen el flujo de trabajo para el despliegue de las aplicaciones que se alojen en la infraestructura a gestionar con Chef.

Creo que estos conceptos pueden ser de ayuda antes de adentrarse en la documentación de Chef o otros recursos de formación. En chef.io encontraras más información, y en futuros posts iremos introduciendo nuevos elementos de Chef. Si estas interesado en aspectos más concretos de Chef no dudes dejar un comentario, y intentaremos escribir sobre ello.

Dejar comentario

Tu dirección de correo no será publicada Los campos requeridos están marcados con *

7 − 3 =