Búsqueda de sitios web

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


Tomemos un escenario simple, tienes 10 servidores Redhat donde 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 cientos o miles, 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. Las secuencias de comandos tienen sus propias desventajas; aunque se utilizan ampliamente en las organizaciones, son difíciles 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 es necesario escribir código largo para una tarea simple, etc., esta situación nos exige buscar herramientas de Automatización y Gestión de 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 a 3 y cubriremos 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 clave de la práctica de DevOps. En el ciclo de desarrollo de software, todos los servidores deben estar configurados y mantenidos correctamente de tal manera que no hagan ninguna interrupción en el ciclo de desarrollo. Una 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 gestión de configuración: basadas en PUSH y basadas en PULL. En el sistema basado en PUSH, el servidor maestro envía el código de configuración a los servidores, donde los servidores individuales basados en PULL contactan al maestro para obtener el código de configuración. PUPPET y CHEF son modelos basados en PULL ampliamente utilizados, ANSIBLE es un modelo popular basado en PUSH. En este artículo veremos sobre CHEF.

2. ¿Qué es un cocinero?

A 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 sencilla.

  • Se establece en 2008 como OPSCODE y posteriormente pasa a llamarse CHEF (herramienta Chef Automation).
  • Es una herramienta de automatización basada en Ruby que se utiliza para gestionar 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 e independiente.
  • Chef admite varios sistemas operativos como Ubuntu, Redhat/CentOS, Fedora, macOS, Windows, AIX, etc.
  • El chef es declarativo y mucho más simple que los lenguajes de programación nativos.
  • Proporciona 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 gestionar decenas y miles de nodos con facilidad.
  • El chef es adaptable a la nube, se integra fácilmente con Infraestructura en la Nube.
  • Chef es fácil de aprender y una sólida herramienta compatible con DevOps respaldada por la comunidad.

3. Arquitectura del chef

La arquitectura del Chef se divide en 3 grandes secciones.

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

4. Componentes del chef

A continuación se detallan los componentes clave de Chef.

  • Los Recursos son el módulo básico de Recipe utilizado para gestionar 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 realizar en la Estación de Trabajo. Es un conjunto de comandos que se pueden aplicar a los Clientes Chef como Código Chef.
  • La colección de recetas se llama 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 del 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 pruebas de concepto.

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

Infraestructura como Código es Gestión de Infraestructura de TI donde nos permite realizar automáticamente varias instalaciones/implementaciones y Gestión de Configuración. Aquí, todas las configuraciones e instalaciones están escritas como código.

  • El cliente/nodo Chef realizará el registro y la autenticación con el servidor Chef.
  • El cliente/nodo Chef buscará periódicamente en el servidor Chef. El proceso de autenticación se realiza cada vez que el chef-cliente quiere acceder a los datos almacenados en el chef-servidor.
  • Ohai es una herramienta que ejecutará 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 los ajustes de configuración, se enviará al Chef-Client y se actualizará/instalará.
  • Los libros de cocina y las configuraciones se actualizarán en el servidor Chef utilizando 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 bases de datos, algunos nodos serán servidores de puerta de enlace, etc.
Conclusión

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