Tutorial de Chef: Transformar la infraestructura en código



Chef Tutorial es el segundo blog de la serie de blogs Chef. Este blog explica la arquitectura de Chef y los componentes de Chef como libros de cocina, recetas, etc. con ejemplos.

Chef Tutorial

Chef Tutorial es el segundo blog de la serie de blogs Chef. En mi blog anterior , He explicado qué es Chef, Configuration Management y cómo Chef logra Configuration Management con la ayuda de un caso de uso de Gannett.

En este Tutorial de Chef se cubrirán los siguientes temas:





Estoy seguro despues de leer mi blog anterior debe tener curiosidad por saber exactamente cómo funciona Chef. La primera sección de este blog Tutorial de Chef te explicará en detalle la arquitectura de Chef, lo que despejará todas tus dudas.



Tutorial del chef - Arquitectura del chef

Como se muestra en el diagrama a continuación, hay tres componentes principales de Chef:

  • Puesto de trabajo
  • Servidor
  • Nodos

Chef Architecture - Chef Tutorial - Edureka

Tutorial Chef - Estación de trabajo



La estación de trabajo es la ubicación desde la que se realizan todas las configuraciones de Chef.gestionado. Esta máquina contiene todos los datos de configuración que luego se pueden enviar al servidor Chef central. Estas configuraciones se prueban en la estación de trabajo antes de insertarlas en Chef Server. Una estación de trabajo consta de una herramienta de línea de comandos llamada Cuchillo, que se utiliza para interactuar con Chef Server. Puede haber varias estaciones de trabajo que administran juntas el servidor Chef central.

Las estaciones de trabajo son responsables de realizar las siguientes funciones:

  • Escribir libros de cocina y recetas que luego se enviarán al servidor central de Chef
  • Gestión de nodos en el servidor Chef central

Ahora, entendamos los puntos mencionados anteriormente uno por uno.

Escribir libros de cocina y recetas que luego se enviarán al servidor central de Chef

Recetas: Una receta es una colección de recursos que describe una configuración o política en particular. Describe todo lo que se requiere para configurar parte de un sistema. El usuario escribe recetas que describen cómo Chef administra las aplicaciones y utilidades (como el servidor HTTP Apache, MySQL o Hadoop) y cómo se configuran.

Estas recetas describen una serie de recursos que deberían estar en un estado particular, es decir, paquetes que deberían estar instalados, servicios que deberían estar en ejecución o archivos que deberían estar escritos.

Más adelante en el blog , Le mostraré cómo escribir una receta para instalar el paquete Apache2 en Chef Nodes escribiendo un código ruby ​​en Chef Workstation.

Libros de cocina: Se pueden agrupar varias recetas para formar un libro de cocina. Un libro de cocina define un escenario y contiene todo lo que se requiere para respaldar ese escenario:

  • Recetas, que especifica los recursos a utilizar y el orden en el que se aplicarán.
  • Valores de atributo
  • Distribuciones de archivos
  • Plantillas
  • Extensiones de Chef, como bibliotecas, definiciones y recursos personalizados

Gestión de nodos en el servidor Chef central

El sistema de la estación de trabajo tendrá las utilidades de línea de comandos necesarias para controlar y gestionar todos los aspectos del servidor Chef central. Cosas como agregar un nuevo Nodo al Chef Server central, eliminar un Nodo del Chef Server central, modificar las configuraciones del Nodo, etc., se pueden administrar desde la propia Estación de Trabajo.

Ahora veamos qué componentes de Workstation son necesarios para realizar las funciones anteriores.

que es un escáner en java

Las estaciones de trabajo tienen dos componentes principales:

Utilidad del cuchillo: Esta herramienta de línea de comandos se puede utilizar para comunicarse con el servidor Chef central desde Workstation. La adición, eliminación y cambio de configuraciones de nodos en un servidor Chef central se llevará a cabo utilizando esta utilidad de Knife. Con la utilidad Knife, los libros de cocina se pueden cargar en un servidor Chef central y también se pueden administrar los entornos. Básicamente, todos los aspectos del servidor Chef central se pueden controlar desde la estación de trabajo mediante la utilidad Knife.

Un repositorio de Chef local: Este es el lugar donde se almacenan todos los componentes de configuración del servidor Chef central. Este repositorio de Chef se puede sincronizar con el servidor central de Chef (nuevamente usando la utilidad de cuchillo).

Chef Tutorial – Chef Server

Chef Server actúa como un centro para los datos de configuración. Chef Server almacena los libros de recetas, las políticas que se aplican a los nodos y los metadatos que describen cada nodo registrado que está siendo administrado por Chef-Client.

Los nodos usan Chef-Client para pedirle al Chef Server detalles de configuración, como recetas, plantillas y distribuciones de archivos. El Chef-Client luego hace la mayor parte del trabajo de configuración posible en los propios Nodos (y no en el Chef Server). Cada nodo tiene instalado un software Chef Client, que desplegará la configuración del servidor Chef central que sea aplicable a ese nodo. Este enfoque escalable distribuye el esfuerzo de configuración en toda la organización.

Chef Tutorial – Chef Nodes

Los nodos pueden ser un servidor virtual basado en la nube o un servidor físico en su propio centro de datos, que se administra mediante el servidor Chef central. El componente principal que debe estar presente en el nodo es un agente que establecerá la comunicación con el servidor Chef central. Esto se llama Chef Client.

Chef Client realiza las siguientes funciones:

  • Es responsable de interactuar con el Chef Server central.
  • Gestiona el registro inicial del Nodo en el Chef Server central.
  • Extrae los libros de cocina y los aplica en el nodo para configurarlo.
  • Sondeo periódico del servidor Chef central para buscar nuevos elementos de configuración, si los hubiera.

Haga clic aquí para aprender cómo instalar Chef Server, Workstation y Node

Tutorial del chef - Ventajas del chef:

Este tutorial de Chef estará incompleto si no incluyo los beneficios clave de Chef:

  • Puede automatizar toda una infraestructura con Chef. Todas las tareas que se realizaban manualmente ahora se pueden realizar a través de la herramienta Chef.
  • Puede configurar miles de nodos en minutos con Chef.
  • La automatización de Chef funciona con la mayoría de las ofertas de nube pública como .
  • Chef no solo automatizará las cosas, sino que también mantendrá los sistemas bajo un control constante y confirmará que el sistema está configurado de hecho de la manera que se requiere (Chef Agent / Client hace este trabajo). Si alguien comete un error al modificar un archivo, Chef lo corregirá.
  • Se puede registrar una infraestructura completa en forma de un repositorio de Chef, que se puede utilizar como modelo para recrear la infraestructura desde cero.

Espero que hayas disfrutado este tutorial de Chef hasta ahora, ¡basta con las publicaciones teóricas! divirtámonos con la práctica.

Tutorial de chef | Introducción a Chef | Edureka

Tutorial del chef: práctica

Aquí te explicaré cómo crear una receta, un libro de cocina y una plantilla en Chef Workstation. También le explicaré cómo implementar un libro de recetas desde la estación de trabajo a Chef-Client (Chef Node).

Estoy usando dos imágenes virtuales, una para Chef Workstation y otra para Chef Node. Para Chef Server, usaré la versión alojada de Chef (en la nube). También puede utilizar una máquina física para Chef Server.

Paso 1: Instale Chef DK (kit de desarrollo) en su estación de trabajo Chef.

Chef DK es un paquete que contiene todas las herramientas de desarrollo que necesitará al programar Chef. Aquí está el enlace para descargar Chef DK .

Aquí, elija el sistema operativo que está utilizando. Estoy usando CentOS 6.8. Entonces, haré clic en Red Hat Enterprise Linux .

Copie el enlace según la versión de CentOS que esté utilizando. Estoy usando CentOS 6, como puede ver, lo he resaltado en la captura de pantalla anterior.

Vaya a la terminal de su estación de trabajo y descargue Chef DK usando el comando wget y pegue el enlace.

Ejecuta esto:

wget https://packages.chef.io/stable/el/6/chefdk-1.0.3-1.el6.x86_64.rpm

El paquete ahora está descargado. Es hora de instalar este paquete usando rpm.

Ejecuta esto:

rpm -ivh chefdk-1.0.3-1.el6.x86_64.rpm

Chef DK ahora está instalado en mi estación de trabajo.

Paso 2: Cree una receta en la estación de trabajo

Comencemos por crear una receta en la estación de trabajo y probarla localmente para asegurarnos de que está funcionando.Cree una carpeta llamada chef-repo. Podemos crear nuestras Recetas dentro de esta carpeta.

Ejecuta esto:

mkdir chef-repo cd chef-repo

En este directorio chef-repo, crearé una receta llamada edureka.rb. .rb es la extensión utilizada para ruby. Usaré el editor vim, puedes usar cualquier otro editor que quieras como gedit, emac, vi, etc.

Ejecuta esto:

vim edureka.rb

Aquí agregue lo siguiente:

archivo '/ etc / motd' contenido 'Bienvenido a Chef' final

Esta rreceta es dureka .rb crea un archivo llamado / etc / motd con el contenido 'Bienvenido a Chef'.

c ++ stl sort

Ahora usaré esta receta para verificar si está funcionando.

Ejecutar esta:

chef-aplicar edureka.rb

Entonces, hay un archivo creado en el repositorio de chef que tiene contenido Bienvenido a Chef.

Paso 3: METROodificar el archivo de receta para instalar el paquete httpd

Modificaré la receta para instalar el paquete httpd en mi estación de trabajo y copiaré un archivo index.html en la raíz del documento predeterminado para confirmar la instalación. La acción predeterminada para un recurso de paquete es la instalación, por lo tanto, no necesito especificar esa acción por separado.

Ejecutar esta:

vim edureka.rb

Aquí agregue lo siguiente:

paquete 'httpd' servicio 'httpd' hacer acción [: habilitar,: inicio] finalizar archivo '/var/www/html/index.html' hacer contenido 'Bienvenido a Apache en Chef' final

Ahora aplicaré estas configuraciones ejecutando el siguiente comando:

Ejecutar esta:

chef-aplicar edureka.rb

La ejecución del comando describe claramente cada instancia en la receta. Instala el paquete Apache, habilita e inicia el servicio httpd en la estación de trabajo. Y crea un archivo index.html en la raíz del documento predeterminado con el contenido 'Bienvenido a Apache en Chef'.

Ahora confirme la instalación de Apache2 abriendo su navegador web. Escriba su dirección IP pública o el nombre de su anfitrión. En mi caso, es localhost.

Etapa 4: Ahora crearemos nuestro primer libro de cocina.

Cree un directorio llamado libros de recetas y ejecute el siguiente comando para generar el libro de recetas.

Ejecutar esta:

libros de cocina mkdir cd libros de cocina chef generar libro de cocina httpd_deploy

httpd_deploy es un nombre que se le da al libro de cocina. Puede dar el nombre que desee.

Pasemos a este nuevo directorio httpd_deploy.

Ejecutar esta:

cd httpd_deploy

Ahora veamos la estructura de archivos del libro de recetas creado.

Ejecutar esta:

árbol

Paso 5: Ccrear un archivo de plantilla.

Anteriormente, creé un archivo con algunos contenidos, pero que no encaja con las estructuras de mis recetas y libros de recetas. Así que veamos cómo podemos crear una plantilla para la página index.html.

Ejecutar esta:

chef generar plantilla httpd_deploy index.html

Ahora, si ve la estructura de archivos de mi libro de recetas, hay una carpeta creada con las plantillas de nombre con el archivo index.html.erb. Editaré este archivo de plantilla index.html.erb y le agregaré mi Receta. Consulte el siguiente ejemplo:

Ir al directorio predeterminado

Ejecutar esta:

cd / root / chef-repo / cookbook / httpd_deploy / templates / default

Aquí, edite la plantilla index.html.erb usando cualquier editor con el que se sienta cómodo. Usaré el editor vim.

Ejecutar esta:

vim index.html.erb

Ahora agregue lo siguiente:

Bienvenido a Chef Apache Deployment

Paso 6: CCrea una receta con esta plantilla.

Vaya al directorio de recetas.

Ejecutar t su:

cd / root / chef-repo / cookbooks / httpd_deploy / recipes

Ahora edite el archivo default.rb usando cualquier editor que desee. Usaré el editor vim.

Ejecutar esta:

vim default.rb

Aquí agregue lo siguiente:

paquete 'httpd' servicio 'httpd' hacer acción [: habilitar,: inicio] finalizar plantilla '/var/www/html/index.html' hacer fuente 'index.html.erb' final

Ahora volveré a mi carpeta chef-repo y ejecutaré / probaré mi receta en mi estación de trabajo.

Ejecutar esta:

cd / root / chef-repo chef-client --local-mode --runlist 'receta [httpd_deploy]'

De acuerdo con mi receta, Apache está instalado en mi estación de trabajo, el servicio se está iniciando y habilitando al arrancar. También se ha creado un archivo de plantilla en la raíz de mi documento predeterminado.

Ahora que he probado mi Workstation. Es hora de configurar Chef Server.

Paso 7: Configurar Chef Server

Usaré la versión alojada de Chef Server en la nube, pero también puede usar una máquina física. Este Chef-Servidor está presente en manage.chef.io

Aquí cree una cuenta si no tiene una. Una vez que haya creado una cuenta, inicie sesión con sus credenciales de inicio de sesión.

Así es como se ve Chef Server.

Si se registra por primera vez, lo primero que hará es crear una organización. La organización es básicamente un grupo de máquinas que administrará con Chef Server.

Primero, iré a la pestaña de administración. Allí ya he creado una organización llamada edu. Entonces necesito descargar el kit de inicio en mi estación de trabajo. Este kit de inicio le ayudará a enviar archivos desde la estación de trabajo al servidor Chef. Haga clic en el icono de configuración en el lado derecho y haga clic en Starter Kit.

Al hacer clic allí, obtendrá una opción para descargar el Kit de inicio. Simplemente haga clic en él para descargar el archivo zip del Starter Kit.

Mueva este archivo a su directorio raíz.Ahora descomprima este archivo zip usando el comando descomprimir en su terminal. Notarás que incluye un directorio llamado chef-repo.

Ejecutar esta:

descomprimir chef-starter.zip

Ahora mueva este kit de inicio al directorio de libros de cocina en el directorio chef-repo.

Ejecutar esta:

mv starter / root / chef-repo / cookbook

Los libros de cocina del chef están disponibles en el Supermercado de libros de cocina, podemos ir al Supermercado del chef. Descargue los libros de cocina necesarios de supermarket.chef.io . Estoy descargando uno de los libros de cocina para instalar Apache desde allí.

Ejecutar e t h es:

cd chef-repo cuchillo libro de cocina descarga del sitio learn_chef_httpd

Hay Tar ball descargado para Apache Cookbook. Ahora, necesitamos extraer el contenido de este archivo Tar descargado. Para eso, usaré el comando tar.

tar -xvf learn_chef_httpd-0.2.0.tar.gz

Todos los archivos necesarios se crean automáticamente en este Libro de recetas. No es necesario realizar modificaciones. Revisemos la descripción de la receta dentro de mi carpeta de recetas.

Ejecutar t h es :

cd / root / chef-repo / learn_chef_httpd / recipes cat default.rb

Ahora, simplemente cargaré este libro de cocina en mi Chef Server, ya que me parece perfecto.

Paso 8: Cargue el libro de recetas en Chef Server.

Para cargar el libro de cocina de Apache que he descargado, primero mueva este archivo learn_chef_httpd a la carpeta de libros de cocina en el repositorio de chef. Luego cambie su directorio a libros de cocina.

Ejecutar t h es :

mv / root / chef-repo / learn_chef_httpd / root / chef-repo / cookbooks

Ahora vaya a este directorio de libros de cocina.

Ejecuta esto:

libros de cocina en CD

Ahora en este directorio, ejecute el siguiente comando para cargar Apache Cookbooa:

Ejecutivo ute t h es:

cargar libro de cocina con cuchillo learn_chef_httpd

Verifique el libro de recetas desde la consola de administración del servidor Chef. En la sección de políticas, encontrará el libro de cocina que ha subido. Consulte la captura de pantalla a continuación:

Ahora nuestro último paso es agregar Chef Node. He configurado una estación de trabajo, un servidor Chef y ahora necesito agregar mis clientes al servidor Chef para la automatización.

Paso 9: Añadiendo Chef Node al Chef Server.

Para fines de demostración, usaré una máquina CentOS como Chef Node. Puede haber cientos de nodos conectados a un servidor Chef. El color del terminal de mi máquina Node es diferente al de la Workstation, por lo que podrá diferenciar entre ambos.

Solo necesito la dirección IP de mi nodo para eso ejecutaré el siguiente comando en mi máquina de nodoes.

Ejecutivo tu t es t h es:

ifconfig

Agregaré mi nodo Chef al servidor ejecutando el comando Knife Bootstrap en el que especificaré la dirección IP del nodo Chef y su nombre. Ejecute el comando que se muestra a continuación.en:

Ejecutivo ute t h es:

cómo instalar php en windows 10
cuchillo bootstrap 192.168.56.102 --ssh-usuario root --ssh-contraseña edureka --nombre de nodo chefNode

Este comando también inicializará la instalación del Chef-Client en el Chef Node. Puede verificarlo desde la CLI en la estación de trabajo usando el comando cuchillo, como se muestra a continuación.en:

Ejecutivo ute t h es:

Lista de nodos de cuchillo

También puede verificar desde el servidor Chef. Vaya a la pestaña de nodos en su Consola de administración del servidor, aquí notará que el nodo que ha agregado está presente. Consulte la captura de pantalla a continuación.

Paso 10: Administrar lista de ejecución de nodos

Veamos cómo podemos agregar un libro de cocina al nodo y administrar su lista de ejecución desde el servidor Chef. Como puede ver en la captura de pantalla a continuación, haga clic en la pestaña Acciones y seleccione la opción Editar lista de ejecución para administrar la lista de ejecución.

En Recetas disponibles, puede ver nuestra Receta learn_chef_httpd, puede arrastrarla desde los paquetes disponibles a la Lista de ejecución actual y guardar la lista de ejecución.

Ahora inicie sesión en su nodo y simplemente ejecute chef-client para ejecutar Run List.

Ejecutivo ute t h es:

cliente principal

Espero que hayas disfrutado de este tutorial de Chef y hayas aprendido cómo se puede utilizar Chef para configurar cientos de nodos. Chef juega un papel vital en muchas organizaciones para lograr DevOps. Con Chef, las organizaciones están lanzando aplicaciones con mayor frecuencia y confiabilidad.bvaso.

Si encontraste este blog en ' Chef Tutorial 'Relevante, revisar la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. El curso de formación de certificación de Edureka DevOps ayuda a los alumnos a adquirir experiencia en varios procesos y herramientas de DevOps, como Puppet, Chef, Jenkins, Nagios y GIT, para automatizar varios pasos en SDLC.