Estou usando o Vagrant para iniciar algumas configurações iniciais do Puppet e estou confuso sobre como incluir / executar vários manifestos (que não sejam apenas o site.pp) no fluxo de trabalho de execução do fantoche sem fazer os manifestos extras nos módulos e incluí-los dessa maneira.
No diretório de manifestos de marionetes para o qual aponto o Vagrant (veja abaixo), tenho dois manifestos que quero executar: site.pp e hierasetup.pp.
config.vm.provision "puppet" do |puppet|
puppet.manifests_path = "puppet_files/manifests"
puppet.module_path = "puppet_files/modules"
puppet.manifest_file = "site.pp"
puppet.options = "--verbose --debug"
end
Atualmente, estou tendo site.pp como manifesto que chama hierasetup.pp. Meu site.pp fica assim:
File {
owner => 'root',
group => 'root',
mode => '0644',
}
import "hierasetup.pp"
include jboss
Mas recebo este erro sobre a descontinuação de "importação":
Aviso: O uso de 'import' foi preterido em /tmp/vagrant-puppet-1/manifests/site.pp:33. Veja http://links.puppetlabs.com/puppet-import-deprecation (em grammar.ra: 610: em `_reduce_190 ')
De acordo com a URL referenciada em "O que tentar em vez disso", ele diz " Para manter as definições de nós em arquivos separados, especifique um diretório como seu manifesto principal ".
Além disso, este documento fantoche sobre os principais manifestos diz:
" Recomendado: se você estiver usando o manifesto principal em vez de depender de uma ENC, considere alterar a configuração do manifesto para $ confdir / manifestests. Isso permite que você divida o código de nível superior em vários arquivos, evitando a palavra-chave de importação. também corresponderá ao comportamento de ambientes simples " .
Parece que o Puppet pode fazer referência a um diretório inteiro em vez de apenas um arquivo de manifesto específico, de modo que eu esperaria que o Vagrant fizesse uma provisão para isso e me permitisse descartar a linha " puppet.manifest_file =" site.pp "e aponte para o diretório pai em que todos os arquivos * .pp serão executados. No entanto, a remoção dessa linha no Vagrant simplesmente gera uma reclamação sobre um "default.pp" esperado em seu lugar:
provedor de fantoches: * O manifesto Puppet configurado está ausente. Especifique o caminho para um manifesto existente: /some/path/puppet_files/manifests/default.pp
Assim:
- Em primeiro lugar, entendo a maneira "nova" (não importada) de chamar vários manifestos corretamente, pois um diretório deve ser apontado para o qual todos os arquivos * .pp dentro dele serão executados?
- E segundo, o Vagrant "acompanhou" essa nova alteração para acomodar a referência de diretórios em conjunto com a descontinuação da "importação" pelo Puppet?
Atualização: Graças a Shane, o problema com o número 2 (o código do Vagrant não foi detectado para permitir apontar para os diretórios de manifesto de marionetes) foi relatado no site do rastreador de problemas do GitHub do Vagrant e, desde então, foi corrigido: https://github.com/mitchellh/vagrant / edições / 4169