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