Marioneta - Medio ambiente

En el modelo de desarrollo y entrega de software, existen diferentes tipos de entornos de prueba que se utilizan para probar un producto o servicio en particular. Como práctica estándar, existen principalmente tres tipos de entornos como desarrollo, pruebas y producción, donde cada uno de ellos tiene su propia configuración.

Puppet admite la gestión de varios entornos en la misma línea que Ruby on Rails. El factor clave detrás de la creación de estos entornos es proporcionar un mecanismo sencillo para la gestión en diferentes niveles del acuerdo SLA. En algunos casos, la máquina siempre debe estar en funcionamiento sin tolerancia ni uso de software antiguo. Donde otros entornos están actualizados y se utilizan con fines de prueba. Se utilizan para actualizaciones de máquinas más importantes.

Puppet recomienda ceñirse a la configuración del entorno de desarrollo, pruebas y producción estándar, sin embargo, aquí incluso le brinda al usuario la posibilidad de crear entornos personalizados según los requisitos.

Objetivo medioambiental

El objetivo principal de la configuración dividida por un entorno es que Puppet pueda tener diferentes fuentes para módulos y manifiestos. Luego, se pueden probar los cambios en la configuración en el entorno de prueba sin afectar los nodos de producción. Estos entornos también se pueden utilizar para implementar infraestructura en diferentes fuentes de red.

Uso del entorno en Puppet Master

El objetivo de un entorno es probar qué manifiesto, módulo o plantilla del archivo debe enviarse al cliente. Por lo tanto, Puppet debe configurarse para proporcionar una fuente específica del entorno para esta información.

Los entornos de marionetas se implementan simplemente agregando las secciones previas al entorno al archivo puppet.conf del servidor y eligiendo una fuente de configuración diferente para cada entorno. Estas secciones previas al entorno se utilizan con preferencia a la sección principal.

[main] 
manifest = /usr/testing/puppet/site.pp 
modulepath = /usr/testing/puppet/modules 
[development] 
manifest = /usr/testing/puppet/development/site.pp 
modulepath = /usr/testing/puppet/development/modules

En el código anterior, cualquier cliente en el entorno de desarrollo usará el archivo de manifiesto site.pp ubicado en el directorio /usr/share/puppet/development y Puppet buscará cualquier módulo en /usr/share/puppet/development/modules directory.

Al ejecutar Puppet con o sin cualquier entorno, el archivo site.pp y el directorio especificado en el manifiesto y los valores de la ruta del módulo en la sección de configuración principal serían predeterminados.

Hay solo unas pocas configuraciones que realmente tienen sentido para ser configuradas antes del entorno, y todos esos parámetros giran en torno a especificar qué archivos usar para compilar la configuración de un cliente.

Los siguientes son los parámetros.

  • Modulepath- En Puppet, como modo estándar básico, es mejor tener un directorio de módulo estándar que compartan todos los entornos y luego un directorio previo al entorno donde se pueda almacenar el módulo personalizado. La ruta del módulo es la ubicación donde Puppet busca todos los archivos de configuración relacionados con el entorno.

  • Templatedir- El directorio de plantillas es la ubicación donde se guardan todas las versiones de las plantillas relacionadas. El módulo debe preferirse a esta configuración, sin embargo, permite tener diferentes versiones de una plantilla determinada en cada entorno.

  • Manifest - Esto define qué configuración usar como script de punto de entrada.

Con varios módulos, los títeres ayudan a conseguir la modularidad de las configuraciones. Se pueden usar múltiples entornos en Puppet, que funcionan mucho mejor si uno se basa principalmente en módulos. Es más fácil migrar cambios a entornos encapsulando cambios en el módulo. El servidor de archivos utiliza una ruta de módulo específica del entorno; si uno realiza el servicio de archivos desde módulos, en lugar de directorios montados separados, este entorno podrá obtener archivos específicos del entorno y, finalmente, el entorno actual también estará disponible en la variable de entorno $ dentro del archivo de manifiesto.

Configuración del entorno de los clientes

Todas las configuraciones relacionadas con la configuración del entorno se realizan en el archivo puppet.conf. Para especificar qué entorno debe usar el cliente Puppet, se puede especificar un valor para la variable de configuración del entorno en el archivo puppet.conf del cliente.

[puppetd] 
environment = Testing

La definición anterior en el archivo de configuración define en qué entorno se encuentra el archivo de configuración en nuestro caso que está probando.

También se puede especificar esto en la línea de comando usando -

#puppetd -–environment = testing

Alternativamente, Puppet también admite el uso de valores dinámicos en la configuración del entorno. En lugar de definir los valores estáticos, el desarrollador tiene una ventaja para crear hechos personalizados que crean un entorno de cliente basado en algunos otros atributos del cliente o una fuente de datos externa. La forma preferida de hacerlo es utilizando una herramienta personalizada. Estas herramientas son capaces de especificar el entorno de un nodo y, en general, son mucho mejores para especificar la información del nodo.

Ruta de búsqueda de marionetas

Puppet utiliza una ruta de búsqueda simple para determinar qué configuración debe aplicarse en la máquina de destino. De la misma manera, la ruta de búsqueda en Puppet es muy útil cuando se trata de recoger los valores apropiados que deben aplicarse. Hay varias ubicaciones, como se indica a continuación, donde Puppet busca los valores que deben aplicarse.

  • Valor especificado en la línea de comando
  • Valores especificados en una sección específica del entorno
  • Valores especificados en una sección específica del ejecutable
  • Valores especificados en la sección principal