Fantoche - Ambiente Conf

No Puppet, todos os ambientes têm o environment.confArquivo. Esse arquivo pode substituir várias configurações padrão sempre que o mestre estiver atendendo a qualquer um dos nós ou todos os nós atribuídos a esse ambiente específico.

Localização

No Puppet, para todos os ambientes definidos, o arquivo environment.conf está localizado no nível superior de seu ambiente inicial, muito próximo aos diretores de manifesto e módulos. Considerando um exemplo, se o seu ambiente estiver em diretórios padrão(Vipin/testing/environment), o arquivo de configuração do ambiente de teste está localizado em Vipin/testing/environments/test/environment.conf.

Exemplo

# /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 os arquivos de configuração no Puppet usam o mesmo formato semelhante ao INI da mesma maneira. environment.confO arquivo segue o mesmo formato semelhante ao INI que outros, como o arquivo puppet.conf. A única diferença entre environment.conf epuppet.confEste arquivo environment.conf não pode conter a seção [main]. Todas as configurações no arquivo environment.conf devem estar fora de qualquer seção de configuração.

Caminho Relativo em Valores

A maioria das configurações permitidas aceita o caminho do arquivo ou lista de caminhos como o valor. Se algum dos caminhos for um caminho relevante, eles começarão sem uma barra ou letra de unidade - eles serão resolvidos principalmente em relação ao diretório principal desse ambiente.

Interpolação em Valores

O arquivo de configurações Environment.conf é capaz de usar valores de outras configurações como variáveis. Existem várias variáveis ​​úteis que podem ser interpoladas no arquivo environment.conf. Aqui está uma lista de algumas variáveis ​​importantes -

  • $basemodulepath- Útil para incluir diretórios nas configurações do caminho do módulo. O usuário corporativo do Puppet geralmente deve incluir este valor demodulepath uma vez que o motor do Puppet usa módulo no basemodulepath.

  • $environment- Útil como um argumento de linha de comando para seu script config_version. Você pode interpolar esta variável apenas na configuração config_version.

  • $codedir - Útil para localizar arquivos.

Configurações permitidas

Por padrão, o arquivo ambiente Puppet.conf só tem permissão para substituir quatro configurações na configuração conforme listado.

  • Modulepath
  • Manifest
  • Config_version
  • Environment_timeout

Modulepath

Esta é uma das principais configurações do arquivo environment.conf. Todos os diretores definidos no modulepath são carregados por padrão pelo Puppet. Este é o local do caminho de onde o Puppet carrega seus módulos. É preciso configurar isso explicitamente. Se esta configuração acima não for definida, o caminho de módulo padrão de qualquer ambiente no Puppet será -

<MODULES DIRECTORY FROM ENVIRONMENT>:$basemodulepath

Manifesto

Isso é usado para definir o arquivo de manifesto principal, que o Puppet master usará ao inicializar e compilar o catálogo a partir do manifesto definido que será usado para configurar o ambiente. Neste, podemos definir um único arquivo, uma lista de arquivos, ou mesmo um diretório consistindo de vários arquivos de manifesto que precisam ser avaliados e compilados em uma seqüência alfabética definida.

É necessário definir explicitamente essa configuração no arquivo environment.conf. Caso contrário, o Puppet usará o diretório de manifesto padrão do ambiente como seu manifesto principal.

Config_version

Config_version pode ser definido como uma versão definitiva usada para identificar catálogos e eventos. Quando o Puppet compila qualquer arquivo de manifesto por padrão, ele adiciona uma versão de configuração aos catálogos gerados, bem como aos relatórios que são gerados quando o mestre do Puppet aplica qualquer catálogo definido nos nós do Puppet. O Puppet executa um script para realizar todas as etapas acima e usa toda a saída gerada como Config_version.

Tempo Limite do Ambiente

É usado para obter os detalhes sobre a quantidade de tempo que o Puppet deve usar para carregar dados para um determinado ambiente. Se o valor for definido no arquivo puppet.conf, esses valores substituirão o valor de tempo limite padrão.

Exemplo de arquivo environment.conf

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

No código acima $confdir é o caminho do diretório, onde os arquivos de configuração do ambiente estão localizados. $environment é o nome do ambiente para o qual a configuração está sendo feita.

Arquivo de configuração do ambiente Pronto para Produção

# 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'