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'