¿Qué es la automatización y la gestión de la configuración con CHEF? Parte 1


Tomemos un escenario simple, tienes 10 servidores redhat en los que tienes que crear un usuario "tecmint" en todos los servidores. El enfoque directo es que debe iniciar sesión en cada servidor y crear el usuario con el comando useradd. Cuando los servidores son 100 o 1000, prácticamente no es posible iniciar sesión en todos los servidores uno por uno.

Aquí, lo primero que nos viene a la mente en tales casos es escribir un script y dejar que el script realice la ejecución en los servidores, es un enfoque probado. La secuencia de comandos tiene sus propias desventajas, aunque se usa ampliamente en las organizaciones, es difícil de mantener si el propietario de la secuencia de comandos abandona la organización.

El guión no funcionará en un entorno heterogéneo. El script es un método imperativo para realizar la tarea, donde necesita escribir un código extenso para una tarea simple, etc., esta situación nos exige buscar herramientas de Automatización y Gestión de la Configuración como un Chef.

En esta serie de artículos sobre Chef, veremos los procedimientos de instalación y configuración de la herramienta Chef Automation a través de las partes 1-3 y cubre los siguientes temas.

Este tutorial proporciona un punto de partida sobre cómo funciona Chef, la automatización, la gestión de la configuración, la arquitectura y los componentes de Chef.

1. Gestión de la configuración

La gestión de la configuración es el punto de enfoque clave de la práctica de DevOps. En el ciclo de desarrollo de software, todos los servidores deben estar configurados por software y mantenerse bien de tal manera que no deban interrumpir el ciclo de desarrollo. La mala gestión de la configuración puede provocar interrupciones del sistema, fugas y violaciones de datos. El uso de herramientas de gestión de la configuración consiste en facilitar la precisión, la eficiencia y la velocidad en el entorno impulsado por DevOps.

Hay dos modelos de herramientas de administración de configuración: basadas en PUSH y basadas en PULL. En el basado en PUSH, el servidor maestro envía el código de configuración a los servidores en los que los servidores individuales basados u200bu200ben PULL se comunican con el maestro para obtener el código de configuración. PUPPET y CHEF son modelos basados u200bu200ben PULL ampliamente utilizados, ANSIBLE es un modelo popular basado en PUSH. En este artículo, veremos sobre CHEF.

2. ¿Qué es un Chef?

Un chef es un programa de automatización de código abierto que permite a los administradores de sistemas automatizar la implementación, las configuraciones, la administración y las tareas en curso en varios servidores y otros dispositivos de una organización de una manera sencilla y fácil.

  • Se establece en 2008 como OPSCODE y luego se renombra a CHEF (herramienta de automatización de chef).
  • Es una herramienta de automatización basada en Ruby que se utiliza para administrar la configuración, automatizar y orquestar toda la infraestructura de una organización.
  • Es un proyecto de código abierto y viene con dos modelos de implementación: cliente de servidor y autónomo.
  • Chef es compatible con varios sistemas operativos como Ubuntu, Redhat/CentOS, Fedora, macOS, Windows, AIX, etc.
  • El chef es declarativo y es mucho más simple que los lenguajes de programación nativos.
  • Proporciona una implementación continua para permitir que una empresa se mantenga actualizada con los requisitos del mercado.
  • La responsabilidad principal del Chef es mantener el estado definido de Configuración.
  • Tiene su propio lenguaje declarativo para administrar decenas y miles de nodos con facilidad.
  • El chef se adapta a la nube, se integra fácilmente con la infraestructura en la nube.
  • El chef es fácil de aprender y es una sólida herramienta compatible con DevOps respaldada por la comunidad.

3. Chef Arquitectura

La arquitectura del chef se divide en 3 secciones principales.

  • Chef WorkStation: plataforma de desarrollo local para que los usuarios de Chef creen, prueben y apliquen configuraciones. Puede ser su computadora de escritorio local, computadora portátil con Chef DK (Kit de desarrollo) instalado. Se puede utilizar como entorno de desarrollo/prueba antes de promocionarlo a producción.
  • Chef Server: es un servidor que tiene instalado y configurado el software chef-server. Es responsable de administrar el código del Chef y acceder al código de configuración desde Chef Workstation. El servidor chef debe ser una máquina Linux, no es compatible con ningún otro sistema operativo.
  • Clientes de Chef: existen servidores que se comunican con el servidor de Chef para obtener detalles de configuración, como el código de chef y otros archivos dependientes en binarios. Extrae el código del servidor Chef y lo implementa localmente.

4. Componentes del chef

Los siguientes son los componentes clave de Chef.

  • Los recursos son el módulo básico de Receta que se utiliza para administrar la infraestructura.
  • El atributo es la configuración en forma de par clave-valor.
  • Las recetas son la colección de atributos que se pueden crear en la estación de trabajo. Es un conjunto de comandos que se pueden aplicar a los clientes de Chef como código de chef.
  • La colección de recetas se denomina libro de cocina.
  • Un cuchillo es una herramienta de línea de comandos en Chef Workstation que interactúa con Chef Server.

5. Modelo de implementación de Chef

Hay dos modelos de implementación para Chef.

  • Cliente de servidor: se utiliza para la implementación de producción.
  • Chef Zero: se utiliza para desarrollo, pruebas y POC.

6. ¿Cómo trabaja Chef? Infraestructura como código

Infrastructure as Code es la gestión de la infraestructura de TI, donde nos permite realizar automáticamente varias instalaciones/despliegues y gestión de la configuración. Aquí, todas las configuraciones, instalaciones están escritas como código.

  • El cliente/nodo de Chef hará el registro y la autenticación con el servidor de Chef.
  • El cliente/nodo de Chef buscará periódicamente en el servidor de Chef. El proceso de autenticación se realiza cada vez que el chef-cliente desea acceder a los datos almacenados en el chef-servidor.
  • Ohai es una herramienta que será ejecutada por un cliente Chef para determinar el estado del sistema, detectará los atributos (SO, memoria, disco, CPU, kernel, etc.) del nodo y proporcionará esos atributos al chef-cliente. Ohai es parte de la instalación de Chef Client.
  • Si hay algún cambio en el libro de recetas o en la configuración, se enviará al Chef-Client y se actualizará/instalará.
  • Los libros de cocina y la configuración se actualizarán en el servidor de Chef usando Chef Workstation a través de la herramienta de línea de comandos Knife. La estación de trabajo envía todas las políticas al servidor Chef mediante Knife.
  • Como cada cliente/nodo tendrá una verificación periódica con el servidor Chef, las configuraciones se aplicarán individualmente de acuerdo con la función del servidor. Por ejemplo: en los nodos Chef, algunos nodos serán servidores de base de datos, algunos nodos serán servidores de puerta de enlace, etc.

En este artículo, hemos visto los conceptos básicos de la gestión de la configuración y la herramienta de automatización Chef. Veremos el proceso paso a paso de la instalación de Chef en los próximos artículos.