sql >> Base de Datos >  >> NoSQL >> MongoDB

Conceptos básicos de automatización de bases de datos de MongoDB con Chef

Los entornos administrados crecen con el tiempo, a menudo como resultado de una mayor participación de datos o tal vez debido a la necesidad de aumentar el rendimiento a través de la carga de trabajo compartida. Debido a esto, es necesario agregar miembros. Por ejemplo, con MongoDB uno puede decidir hacer replicación y fragmentación, lo que en consecuencia requerirá que se agreguen más miembros al clúster. Configurar e implementar estos entornos con el tiempo se vuelve ajetreado, consume mucho tiempo, es propenso a errores humanos y muchos contratiempos asociados que finalmente representan gastos operativos. Tome un ejemplo de un conjunto de réplicas con 50 miembros en MongoDB y desea fragmentar una determinada colección en cada uno de los miembros. Hacer esto manualmente para cada uno lleva mucho tiempo, por lo que necesitamos un sistema centralizado desde el cual pueda configurar fácilmente todos los miembros. . Con un sistema centralizado, escribe un código que a su vez configura los miembros conectados. Por lo tanto, el código es legible por humanos, versionable y comprobable para eliminar posibles errores antes de la implementación.

¿Qué es el software Chef?

Chef es un software de automatización escrito en lenguaje Ruby que se utiliza para agilizar la tarea de configurar y mantener máquinas en la nube o servidores locales. Lo hace asegurándose de que todos los miembros conectados obtengan los recursos necesarios, los recursos están bien configurados y corrige los recursos que no están en el estado deseado. Por lo tanto, Chef básicamente garantiza que los archivos y los recursos de software que se espera que estén en una determinada máquina estén presentes, configurados correctamente y funcionando correctamente según lo previsto.

Los componentes de Chef

Servidor Chef

Este es el sistema de control central que alberga los datos de configuración. Los datos se escriben en una 'receta' y si muchas de estas recetas están involucradas, forman un libro de cocina. El sistema central también contiene metadatos que describen cada uno de los nodos como se describe en chef-client.

Todos los cambios realizados en las recetas pasan aquí para su validación antes de la implementación. El servidor también garantiza que la estación de trabajo y los nodos conectados estén emparejados mediante claves de autorización antes de permitir la comunicación entre ellos y aplicar los cambios.

Nodo de cliente Chef

El nodo cliente de Chef registra y valida nodos y crea los objetos de nodo. Básicamente, contiene el estado actual de un nodo determinado y sus metadatos.

Nodo

Esta es la máquina física, virtual o en la nube que se configurará y cada una debe tener instalado el nodo del cliente.

Estación de trabajo

La estación de trabajo proporciona una interfaz para la comunicación entre el servidor y los nodos del cliente. Proporciona una plataforma para escribir, probar e implementar los libros de cocina. Aquí es donde también se definen los roles

Cocina de prueba

Aquí es donde se valida el código.

Cuchillo cocinero

Interactúa con los nodos.

Libros de cocina

Contiene recetas escritas en lenguaje Ruby y se utilizan para definir las tareas a realizar. Las recetas especifican los recursos y el orden de implementación de las tareas definidas.

  • los atributos se utilizan para anular la configuración predeterminada.
  • archivos utilizados para transferir archivos desde una ruta específica a chef-client.
  • recurso de metadatos define la información del nodo como se describe en el nodo del cliente.

Cómo funciona Chef

Chef tiene dos formas de operación, es decir, cliente/servidor o en un modo independiente conocido como 'chef-solo'.

El Chef-servidor recibe varios atributos con respecto a un determinado nodo del Chef-cliente. Estos atributos luego son indexados usando Elasticsearch por el servidor que luego proporciona una interfaz de programa de aplicación (API) desde donde los nodos cliente pueden consultar estos datos. Los nodos cliente utilizan los resultados devueltos para configurar las máquinas relevantes y transformarlas al estado deseado.

El servidor concentra todas las operaciones donde se almacenarán los cambios

Los servidores administrados por Chef se evalúan de vez en cuando contra algún estado deseado para garantizar que cualquier cambio en las configuraciones se corrige automáticamente y se aplica universalmente. Con este enfoque, hay una configuración consistente a escala.

Primeros pasos con Chef

Puede descargar la estación de trabajo chef desde este sitio e instalarla. Cree una carpeta llamada libros de cocina y dentro de esta carpeta ejecute el comando:

$ chef generate cookbook first_cookbook

Esto generará un directorio llamado first_cookbook con algunas subcarpetas y archivos.

Navegue a cookbooks/first_cookbook/recipes/ y actualice la receta default.rb con el contenido

file "test.txt" do

  content 'This is my first recipe file'

end

Luego ejecutamos este archivo usando el comando

$ chef-client --local-mode --override-runlist first_cookbook.

O, dentro de la carpeta de recetas, puede ejecutar el archivo con el comando

$ chef-apply default.rb

Si navega a su carpeta de recetas, definitivamente verá el archivo test.txt con el contenido Este es mi primer archivo de recetas. Es fácil. En la siguiente sección, crearemos recetas para realizar algunas tareas específicas relacionadas con MongoDB

Instalación y configuración de MongoDB con Chef

Puede instalar MongoDB creando una receta de instalación MongoDBInstall.rb y complétela con los contenidos

package "mongodb" do

 action :install

 version '4.0.3'

end

En este caso, el nombre de nuestro paquete es mongodb y vamos a instalar la versión 4.0.3

Lo que tenemos es una receta básica pero en muchos casos necesitaremos un recetario avanzado para hacer nuestra configuración en MongoDB. Para facilitar la tarea, existen libros de cocina desarrollados como SC-MongoDB que generalmente hacen que la configuración sea precisa.

Libro de recetas SC-MongoDB

El libro de cocina proporciona  mongodb_instance que mejora uno para configurar los parámetros de MongoDB, el conjunto de réplicas y un clúster fragmentado.

Para instalar el libro de cocina simplemente ejecute el comando

$ knife supermarket download sc-mongodb

Luego puede usar los atributos definidos en este sitio para reconfigurar algunos de los atributos predeterminados de MongoDB.