Tutorial de marionetas: solución integral para la gestión de la configuración



Puppet Tutorial es el segundo blog de la serie de blogs Puppet. Habla sobre la arquitectura de Puppet, los componentes y un ejemplo para implementar mysql y php usando Puppet.

Tutorial de marionetas

Puppet Tutorial es el segundo blog de la serie de blogs Puppet. Espero que hayas leído mi blog anterior sobre ' Que es Puppet ”Que explica la gestión de la configuración y por qué es importante con la ayuda de casos de uso.

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





¿Qué es la gestión de la configuración?

En mi blog anterior , He dado una introducción a la Gestión de la Configuración y los retos que nos ayuda a superar. En este Tutorial de marionetas, te explicaré las diferentes actividades interdependientes de la Gestión de la configuración.Pero antes de eso, entendamos qué es Elemento de configuración (CI). Un elemento de configuración es cualquier componente de servicio, elemento de infraestructura u otro elemento que necesita ser administrado para asegurar la entrega exitosa de servicios. Los ejemplos de CI incluyen documentos, software, modelos y planes de requisitos individuales.



La Gestión de la configuración consta de los siguientes elementos:

  • Identificación de configuración
  • Gestión del cambio
  • Contabilidad del estado de configuración
  • Auditorías de configuración

El siguiente diagrama explica estos componentes:

Componentes de gestión de configuración - Tutorial de marionetas - Edureka



Identificación de la configuración: Es el proceso de:

  • Etiquetado de elementos de configuración de software y hardware con identificadores únicos
  • Identificación de la documentación que describe un elemento de configuración
  • Agrupar elementos de configuración relacionados en líneas de base
  • Revisiones de etiquetado de elementos de configuración y líneas base.

Gestión del cambio: Es un enfoque sistemático para lidiar con el cambio tanto desde la perspectiva de una organización como del individuo.

Contabilidad del estado de configuración: Eso incluye el proceso de registrar e informar las descripciones de los elementos de configuración (por ejemplo, hardware, software, firmware, etc.) y todas las desviaciones de la línea de base durante el diseño y la producción. En caso de sospecha de problemas, se puede determinar rápidamente la verificación de la configuración inicial y las modificaciones aprobadas.

Auditorías de configuración: Las auditorías de configuración proporcionan un mecanismo para determinar el grado en que el estado actual del sistema es consistente con la última línea de base y documentación. Básicamente, es una revisión formal para verificar que el producto que se entrega funcionará como se anuncia, promociona o de alguna manera se prometió a los clientes. Utiliza la información disponible como resultado de las auditorías y pruebas de calidad junto con la información de contabilidad del estado de la configuración, para garantizar que se haya construido lo que se requería.

Entendamos la gestión de la configuración con un caso de uso. Suponga que si tiene que actualizar un software en particular o desea reemplazarlo, en ese caso se debe seguir el siguiente diagrama de flujo para una Gestión de la Configuración exitosa:

Ahora es el momento adecuado para comprender la arquitectura de marionetas.

Tutorial de marionetas - Arquitectura de Marioneta

Puppet utiliza una arquitectura Master-Slave. El diagrama siguiente muestra lo mismo:

Las siguientes funciones se realizan en la imagen de arriba:

  • El Puppet Agent envía los hechos al Puppet Master. Los hechos son básicamentepar de datos clave / valor que representa algún aspecto del estado del esclavo, como su dirección IP, tiempo de actividad, sistema operativo o si es una máquina virtual. Explicaré los hechos en detalle más adelante en el blog.
  • Puppet Master utiliza los hechos para compilar un catálogo que define cómo se debe configurar el esclavo. Catalogares un documento que describe el estado deseado para cada recurso que Puppet Master administra en un esclavo. Explicaré los catálogos y recursos en detalle más adelante.
  • Puppet Slave informa al Master indicando que la configuración está completa, lo cual es visible en el tablero de Puppet.

Vea este video tutorial de Puppet para una comprensión profunda de Puppet.

Tutorial de marionetas para principiantes | Entrenamiento DevOps | Edureka

Tutorial de marionetas - Puppet Master and Slave Communication

Puppet Master and Slave se comunica a travésun canal cifrado seguro con la ayuda de SSL. El diagrama siguiente muestra lo mismo:

¿Puedes extender e implementar en java?

Como puede ver en la imagen de arriba:

  • Puppet Slave solicita el certificado de Puppet Master.
  • Después de recibir el certificado de Puppet Master, Master solicita el certificado de Slave.
  • Una vez que el maestro ha firmado el certificado de esclavo, el esclavo solicita configuración / datos.
  • Finalmente, Puppet Master enviará la configuración a Puppet Slave.

Echemos ahora un vistazo a varios componentes de Puppet.

Tutorial de marionetas: componentes de Marioneta

Manifiestos: Cada esclavo tiene sus detalles de configuración en Puppet Master, escrito en el idioma nativo de Puppet. Estos detalles están escritos en el lenguaje que Puppet puede entender y se denominan Manifiestos. Están compuestos por código Puppet y sus nombres de archivo usan la .páginas extensión. Estos son básicamente programas de marionetas.
Por ejemplo: Puede escribir un manifiesto en Puppet Master que crea un archivo e instala el servidor Apache en todos los Puppet Slaves conectados al Puppet Master.

Módulo: Un módulo de marionetas es una colección de manifiestos y datos (como hechos, archivos y plantillas) y tienen una estructura de directorio específica. Los módulos son útiles para organizar su código de Puppet, porque le permiten dividir su código en múltiples Manifiestos. Los módulos son paquetes autónomos de código y datos.

Recurso: Los recursos son la unidad fundamental para modelar configuraciones de sistemas. Cada recurso describe algún aspecto de un sistema, como un servicio o paquete específico.

Facter: Facter recopila información básica (hechos) sobre Puppet Slave, como detalles de hardware, configuración de red, tipo y versión de SO, direcciones IP, direcciones MAC, claves SSH y más. Estos hechos están disponibles en los Manifiestos de Puppet Master como variables.

Colectivo: Es un marco que permite ejecutar varios trabajos en paralelo en múltiples esclavos. Realiza varias funciones como:

  • Interactúe con grupos de esclavos, ya sea en grupos pequeños o implementaciones muy grandes.
  • Utilice un paradigma de difusión para distribuir solicitudes. Todos los esclavos reciben todas las solicitudes al mismo tiempo, las solicitudes tienen filtros adjuntos y solo los esclavos que coinciden con el filtro actuarán en las solicitudes.
  • Utilice herramientas sencillas de línea de comandos para llamar esclavos remotos.
  • Escriba informes personalizados sobre su infraestructura.

Catálogos: Un catálogo describe el estado deseado de cada recurso administrado en un esclavo. Es una compilación de todos los recursos que Puppet Master aplica a un esclavo dado, así como las relaciones entre esos recursos.Los catálogos son compilados por un Puppet Master a partir de manifiestos y datos proporcionados por el esclavo (como hechos, certificados y un entorno si se proporciona uno), así como datos externos opcionales (como datos de un clasificador esclavo externo, recursos exportados, y funciones). El maestro luego entrega el catálogo compilado al esclavo cuando se le solicita.

Ahora, en este Tutorial de marionetas, mi próxima sección se centrará en la práctica.

Tutorial de marionetas: práctica

Le mostraré cómo implementar MySQL y PHP desde Puppet Master a Puppet Slave. Estoy usando solo un esclavo para fines de demostración, puede haber cientos de esclavos conectados a un maestro. Para implementar PHP y MySQL, utilizaré módulos predefinidos disponibles en forge.puppet.com. También puede crear sus propios módulos.

Paso 1: En Puppet Master instale los módulos MySQL y PHP.

Ejecuta esto:

1) módulo de marionetas instalar puppetlabs-mysql –versión 3.10.0

Este módulo MySQL instala, configura y administra el servicio MySQL. Este módulo administra tanto la instalación como la configuración de MySQL, además de extender Puppet para permitir la administración de recursos MySQL, como bases de datos, usuarios y subvenciones.

2) instalar el módulo de marionetas mayflower-php –version 4.0.0-beta1

Este módulo se utiliza para administrar PHP, en particular php-fpm. PHP-FPM (FastCGI Process Manager) es una implementación alternativa de PHP FastCGI con algunas características adicionales útiles para sitios de cualquier tamaño, especialmente sitios más ocupados.

Paso 2: En Puppet Manifests se incluyen el servidor MySQL y PHP.

Ejecuta esto: vi /etc/puppet/manifests/site.pp

Puede usar cualquier otro editor, como vim, gedit, etc. En este archivo site.pp agregue lo siguiente:

diferencia entre copia superficial y copia profunda en java
incluir ':: mysql :: servidor' incluir ':: php'

Guardar y Salir.

Paso 3: Puppet Slaves extrae su configuración del Master periódicamente (después de cada 30 minutos). Evaluará el manifiesto principal y aplicará el módulo que especifica la configuración de MySQL y PHP. Si desea probarlo de inmediato, debe ejecutar el siguiente comando en cada nodo esclavo:

Ejecuta esto: agente títere -t

Entonces MySQL y PHP se instalan con éxito en el nodo esclavo.

Etapa 4: Para verificar la versión de MySQL y PHP instalada:

Ejecuta esto:

1) mysql -v

2) php -versión

¡Felicidades! MySQl y PHP están funcionando en su Puppet Slave. Aquí te he mostrado solo un esclavo pero imagina si hay cientos de esclavos. En ese escenario, su trabajo se vuelve tan fácil. Simplemente especifique las configuraciones en Puppet Master y Puppet Slaves evaluará automáticamente el manifiesto principal y aplicará el módulo que especifica la configuración de MySQL y PHP.

Si encontraste esto Tutorial de marionetas pertinente, 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, Jenkins, Nagios y GIT para automatizar varios pasos en SDLC.