O que é necessário para fazer a transição de uma instalação de fantoches para usar ambientes de diretório?

3

Atualmente, estou executando uma pequena configuração de puppetmaster + client que não está utilizando o recurso de ambiente de diretório do Puppet. Minha versão de fantoches é 3.6.

Eu tentei o seguinte:

  1. No mestre de fantoches: adicionado environmentpath=$confdir/environments a puppet.conf
  2. No mestre de marionetes: crie os caminhos necessários em $confdir/environments/ (por exemplo, /etc/puppet/environments/production )
  3. Adicionados meus módulos e manifesto existentes ( site.pp ) ao ambiente de produção
  4. Comutado para esta ramificação git e executou um teste puppet agent -vt em um cliente

Infelizmente, estou recebendo o seguinte erro:

Info: Retrieving pluginfacts
Error: /File[/var/lib/puppet/facts.d]: Could not evaluate: Could not retrieve information from environment production source(s) puppet://puppet/pluginfacts
Info: Retrieving plugin
Error: /File[/var/lib/puppet/lib]: Could not evaluate: Could not retrieve information from environment production source(s) puppet://puppet/plugins
Notice: /File[/var/lib/puppet/lib/puppet]: Dependency File[/var/lib/puppet/lib] has failures: true

A execução de marionetes não falha, mas rola erros semelhantes a isso antes de concluir.

Meu processo de pensamento por trás da replicação da configuração atual (módulos e manifestos) no novo ambiente production é que todos os clientes devem ter sua variável $environment definida como production por padrão. Essa lógica é falha?

Eu baseei minha conversão em um guia do Puppet Labs .

    
por DannyKansas 26.09.2014 / 17:00

2 respostas

1

Para o bem da posteridade, aqui está a correção que encontrei:

Eu cometi dois erros simples:

  1. Eu não reiniciei o puppetmaster (via passageiro). Isso foi facilmente realizado com service apache2 restart no Debian Wheezy

  2. Ao reiniciar, recebi um fluxo de novos erros indicando problemas com o recarregamento do fantoche. Os arquivos de log contendo informações pertinentes foram encontrados em: /var/log/syslog , de todos os lugares.

  3. Os registros indicaram um problema com permissões para /etc/puppet/manifests . Acontece que o git exclui pastas vazias e, como eu havia migrado meu site.pp para /etc/puppet/environments/production/manifests/site.pp , o git removeu a pasta /etc/puppet/manifests que gerava erros.

  4. Consertei # 3 adicionando uma site.pp vazia à pasta manifests em /etc/puppet

por 26.09.2014 / 21:24
0

Eu acredito que o fantoche 3.6 usa ambientes de diretórios, então não os configure no puppet.conf, apenas crie os diretórios em ambientes. Eu acho que você pode usar: link

, que é sutilmente diferente. Eu também uso um ENC, o capataz, então isso pode ser diferente para você, mas você provavelmente precisará ter o site.pp no diretório do módulo global, e não em seus ambientes. Nós apenas temos nossos módulos em nossos ambientes, e site.pp etc estão no diretório global do módulo.

    
por 26.09.2014 / 17:40