Marioneta - Ambiente Conf

En Puppet, todos los entornos tienen la environment.confarchivo. Este archivo puede anular varias configuraciones predeterminadas siempre que el maestro esté sirviendo a cualquiera de los nodos o todos los nodos asignados a ese entorno en particular.

Ubicación

En Puppet, para todos los entornos que se definen, el archivo environment.conf se encuentra en el nivel superior de su entorno doméstico, muy próximo a los directores de manifiesto y módulos. Considerando un ejemplo, si su entorno está en directorios predeterminados(Vipin/testing/environment), luego el archivo de configuración del entorno de prueba se encuentra en Vipin/testing/environments/test/environment.conf.

Ejemplo

# /etc/testingdir/code/environments/test/environment.conf  
# Puppet Enterprise requires $basemodulepath; see note below under modulepath". 
modulepath = site:dist:modules:$basemodulepath  
# Use our custom script to get a git commit for the current state of the code: 
config_version = get_environment_commit.sh

Formato

Todos los archivos de configuración en Puppet usan el mismo formato similar a INI de la misma manera. environment.confEl archivo sigue el mismo formato tipo INI que otros, como el archivo puppet.conf. La única diferencia entre environment.conf ypuppet.confEste archivo environment.conf no puede contener la sección [principal]. Todas las configuraciones en el archivo environment.conf deben estar fuera de cualquier sección de configuración.

Ruta relativa en valores

La mayoría de las configuraciones permitidas aceptan la ruta del archivo o la lista de ruta como valor. Si alguna de las rutas es una ruta relevante, comienzan sin una barra inclinada o letra de unidad; se resolverán principalmente en relación con el directorio principal de ese entorno.

Interpolación en valores

El archivo de configuración Environment.conf es capaz de usar valores de otras configuraciones como variable. Hay varias variables útiles que se pueden interpolar en el archivo environment.conf. Aquí hay una lista de algunas variables importantes:

  • $basemodulepath- Útil para incluir directorios en la configuración de la ruta del módulo. El usuario empresarial de marionetas normalmente debe incluir este valor demodulepath ya que el motor Puppet usa el módulo en el basemodulepath.

  • $environment- Útil como argumento de línea de comando para su script config_version. Puede interpolar esta variable solo en la configuración config_version.

  • $codedir - Útil para localizar archivos.

Configuraciones permitidas

Por defecto, el archivo Puppet environment.conf solo puede anular cuatro configuraciones en la configuración que se enumeran.

  • Modulepath
  • Manifest
  • Config_version
  • Environment_timeout

Modulepath

Esta es una de las configuraciones clave en el archivo environment.conf. Puppet carga por defecto todos los directores definidos en modulepath. Esta es la ubicación de la ruta desde donde Puppet carga sus módulos. Es necesario configurar esto explícitamente. Si esta configuración anterior no está configurada, la ruta de módulo predeterminada de cualquier entorno en Puppet será:

<MODULES DIRECTORY FROM ENVIRONMENT>:$basemodulepath

Manifiesto

Esto se usa para definir el archivo de manifiesto principal, que Puppet master usará al arrancar y compilar el catálogo a partir del manifiesto definido que se usará para configurar el entorno. En esto, podemos definir un solo archivo, una lista de archivos o incluso un directorio que consta de varios archivos de manifiesto que deben evaluarse y compilarse en una secuencia alfabética definida.

Es necesario definir explícitamente esta configuración en el archivo environment.conf. De lo contrario, Puppet utilizará el directorio de manifiesto predeterminado del entorno como su manifiesto principal.

Config_version

Config_version se puede definir como una versión definida utilizada para identificar catálogos y eventos. Cuando Puppet compila cualquier archivo de manifiesto de forma predeterminada, agrega una versión de configuración a los catálogos generados, así como a los informes que se generan cuando el maestro Puppet aplica cualquier catálogo definido en los nodos de Puppet. Puppet ejecuta un script para realizar todos los pasos anteriores y usa toda la salida generada como Config_version.

Tiempo de espera del entorno

Se utiliza para obtener detalles sobre la cantidad de tiempo que Puppet debería utilizar para cargar datos para un entorno determinado. Si el valor se define en el archivo puppet.conf, estos valores anularán el valor de tiempo de espera predeterminado.

Ejemplo de archivo environment.conf

[master] 
   manifest =  $confdir/environments/$environment/manifests/site.pp 
   modulepath =  $confdir/environments/$environment/modules

En el código anterior $confdir es la ruta del directorio, donde se encuentran los archivos de configuración del entorno. $environment es el nombre del entorno para el que se realiza la configuración.

Archivo de configuración de entorno listo para producción

# The environment configuration file  
# The main manifest directory or file where Puppet starts to evaluate code  
# This is the default value. Works with just a site.pp file or any other  
manifest = manifests/  
# The directories added to the module path, looked in first match first used order:  
# modules - Directory for external modules, populated by r10k based on Puppetfile  
# $basemodulepath - As from: puppet config print basemodulepath  
modulepath = site:modules:$basemodulepath  
# Set the cache timeout for this environment.  
# This overrides what is set directly in puppet.conf for the whole Puppet server  
# environment_timeout = unlimited  
# With caching you need to flush the cache whenever new Puppet code is deployed  
# This can also be done manually running: bin/puppet_flush_environment_cache.sh  
# To disable catalog caching:  
environment_timeout = 0  
# Here we pass to one in the control repo the Puppet environment (and git branch)  
# to get title and essential info of the last git commit
config_version = 'bin/config_script.sh $environment'