Fantoche - Meio Ambiente

No desenvolvimento de software e no modelo de entrega, existem diferentes tipos de ambientes de teste que são usados ​​para testar um determinado produto ou serviço. Como prática padrão, existem principalmente três tipos de ambientes como desenvolvimento, teste e produção, em que cada um deles tem sua própria configuração definida.

O Puppet suporta o gerenciamento de múltiplos ambientes na mesma linha do Ruby on Rails. O principal fator por trás da criação desses ambientes é fornecer um mecanismo fácil de gerenciamento em diferentes níveis de contrato de SLA. Em alguns casos, a máquina sempre precisa estar ativa sem qualquer tolerância e uso de software antigo. Onde outros ambientes estão atualizados e são usados ​​para fins de teste. Eles são usados ​​para atualizações de máquinas mais importantes.

A Puppet recomenda manter a configuração padrão do ambiente de produção, teste e desenvolvimento, no entanto, aqui ele ainda fornece ao usuário uma vantagem para a criação de ambientes personalizados de acordo com os requisitos.

Meta Ambiental

O objetivo principal da configuração dividida por um ambiente, é que o Puppet pode ter diferentes fontes para módulos e manifestos. Pode-se então testar as mudanças na configuração no ambiente de teste sem impactar os nós de produção. Esses ambientes também podem ser usados ​​para implantar infraestrutura em diferentes fontes de rede.

Usando o Meio Ambiente no Puppet Master

O objetivo de um ambiente é testar qual manifesto, módulo, modelo do arquivo precisa ser enviado ao cliente. Portanto, o Puppet deve ser configurado para fornecer uma fonte específica do ambiente para essas informações.

Os ambientes Puppet são implementados simplesmente adicionando as seções do pré-ambiente ao puppet.conf do servidor e escolhendo fontes de configuração diferentes para cada ambiente. Essas seções de pré-ambiente são então usadas em preferência à seção 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

No código acima, qualquer cliente no ambiente de desenvolvimento usará o arquivo de manifesto site.pp localizado no diretório /usr/share/puppet/development e o Puppet irá procurar por qualquer módulo em /usr/share/puppet/development/modules directory.

A execução do Puppet com ou sem qualquer ambiente teria como padrão o arquivo site.pp e o diretório especificado nos valores manifest e modulepath na seção de configuração principal.

Existem apenas algumas configurações que realmente fazem sentido serem configuradas no pré-ambiente, e todos esses parâmetros giram em torno da especificação de quais arquivos usar para compilar a configuração de um cliente.

A seguir estão os parâmetros.

  • Modulepath- No Puppet, como modo padrão básico, é melhor ter um diretório de módulo padrão que todos os ambientes compartilhem e, em seguida, um diretório de pré-ambiente onde o módulo personalizado pode ser armazenado. O caminho do módulo é o local onde o Puppet procura todos os arquivos de configuração relacionados ao ambiente.

  • Templatedir- O diretório de modelos é o local onde todas as versões dos modelos relacionados são salvas. O módulo deve ser preferido a essas configurações, no entanto, permite que se tenham diferentes versões de um determinado modelo em cada ambiente.

  • Manifest - Isso define qual configuração usar como script de ponto de entrada.

Com vários módulos, os Puppets ajudam a obter a modularidade para as configurações. Pode-se usar vários ambientes no Puppet, que funciona muito melhor se dependermos amplamente de módulos. É mais fácil migrar mudanças para ambientes encapsulando mudanças no módulo. O servidor de arquivos usa um caminho de módulo específico do ambiente; se alguém servir arquivos a partir de módulos, em vez de diretórios montados separados, este ambiente será capaz de obter arquivos específicos do ambiente e, finalmente, o ambiente atual também estará disponível na variável de ambiente $ dentro do arquivo de manifesto.

Configurando o Ambiente do Cliente

Todas as configurações relacionadas à configuração do ambiente são feitas no arquivo puppet.conf. Para especificar qual ambiente o cliente Puppet deve usar, pode-se especificar um valor para a variável de configuração de ambiente no arquivo puppet.conf do cliente.

[puppetd] 
environment = Testing

A definição acima no arquivo de configuração define em qual ambiente o arquivo de configuração está, em nosso caso, ele está testando.

Também é possível especificar isso na linha de comando usando -

#puppetd -–environment = testing

Como alternativa, o Puppet também suporta o uso de valores dinâmicos na configuração do ambiente. Em vez de definir os valores estáticos, o desenvolvedor tem uma vantagem para criar fatos personalizados que criam o ambiente do cliente com base em alguns outros atributos do cliente ou em uma fonte de dados externa. A maneira preferida de fazer isso é usando uma ferramenta personalizada. Essas ferramentas são capazes de especificar o ambiente de um nó e geralmente são muito melhores para especificar as informações do nó.

Caminho de pesquisa de fantoches

O Puppet usa um caminho de pesquisa simples para determinar qual configuração precisa ser aplicada na máquina de destino. Da mesma forma, o caminho de pesquisa no Puppet é muito útil quando está tentando pegar os valores apropriados que precisam ser aplicados. Existem vários locais, conforme listado abaixo, onde o Puppet procura os valores que precisam ser aplicados.

  • Valor especificado na linha de comando
  • Valores especificados em uma seção específica do ambiente
  • Valores especificados em uma seção específica do executável
  • Valores especificados na seção principal