O Vagrant pode apontar para um diretório de manifestos Puppet para execução?

9

Estou usando o Vagrant para dar início a algumas configurações iniciais do Puppet e estou confuso sobre como incluir / executar vários manifestos (além de site.pp) no fluxo de trabalho de execução de marionetes sem transformar os manifestos extras em módulos e incluí-los dessa maneira .

No diretório fantoche manifests que eu indico o Vagrant para (veja abaixo) eu tenho dois manifestos que eu quero que sejam executados: 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 o site.pp como o manifesto que chama hierasetup.pp. Meu site.pp se parece com isso:

File {
  owner => 'root',
  group => 'root',
  mode  => '0644',
}

import "hierasetup.pp"

include jboss

Mas recebo este erro sobre a depreciação de "import":

Aviso: o uso de 'import' está obsoleto em /tmp/vagrant-puppet-1/manifests/site.pp:33. Veja link    (em grammar.ra: 610: em '_reduce_190')

De acordo com a URL referenciada em "Coisas a serem tentadas", diz " Para manter as definições do seu nó em arquivos separados, especifique um diretório como seu manifesto principal ".

Além disso, este documento de fantoches nos principais manifestos diz:

" Recomendado: Se você estiver usando strongmente o manifesto principal em vez de depender de um ENC, considere alterar a configuração do manifesto para $ confdir / manifests. Isso permite dividir o código de nível superior em vários arquivos evitando a palavra-chave importada, além de 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 forma que eu esperaria que o Vagrant fizesse uma provisão para isso e permitisse que eu soltasse o " puppet.manifest_file=" site. pp "linha e aponte para o diretório pai, em vez do qual todos os arquivos * .pp serão executados. No entanto, remover essa linha no Vagrant simplesmente gera uma reclamação sobre um esperado" default.pp "em seu lugar: / p>

fornecedor de fantoches: * O manifesto Puppet configurado está faltando. Por favor especifique um caminho para um manifesto existente: /some/path/puppet_files/manifests/default.pp

Então:

  1. Primeiramente, eu entendo a maneira "nova" (não importar) de chamar vários manifestos corretamente, em que um diretório deve ser apontado no qual todos os arquivos * .pp dentro dele serão executados?
  2. E, em segundo lugar, o Vagrant "pegou" essa nova mudança para acomodar a referência de diretórios em conjunto com a depreciação de "importação" de Puppet?

Atualização: Graças a Shane, o problema com o nº2 (código do Vagrant não sendo pego para permitir a indicação de diretórios de manifesto de bonecos) foi relatado no site do rastreador de problemas do GitHub do Vagrant e desde então foi corrigido: < href="https://github.com/mitchellh/vagrant/issues/4169"> link

    
por SeligkeitIstInGott 13.06.2014 / 23:00

1 resposta

6

Firstly, do I understand the "new" (non-import) way of calling multiple manifests correctly, in that a directory is to be pointed to in which all the *.pp files inside it will be executed?

Sim, você faz. Consulte aqui :

If you’re using the main manifest heavily instead of relying on an ENC, consider changing the manifest setting to $confdir/manifests. This lets you split up your top-level code into multiple files while avoiding the import keyword.

Além disso, manifest e modulepath também estão ficando obsoletos em favor dos ambientes de diretório e do comportamento do diretório de manifesto, veja aqui :

Now that directory environments are completed, config-file environments are deprecated. Defining environment blocks in puppet.conf will cause a deprecation warning, as will any use of the modulepath, manifest, and config_version settings in puppet.conf.

Esta é uma grande mudança para muitas implementações, mas deve ser uma boa melhoria a longo prazo.

And secondly, has Vagrant "caught up" with this new change to accommodate the referencing of directories in conjunction with Puppet's deprecation of "import"?

Não, não foi; de seus documentos:

manifest_file (string) - The name of the manifest file that will serve as the entrypoint for the Puppet run. This manifest file is expected to exist in the configured manifests_path

Para uso com o Vagrant, você está preso a lidar com avisos de depreciação por enquanto, o que é lamentável. Mas, a importação não está programada para remoção até 4.x, então isso dá ao Vagrant algum tempo para recuperar o atraso.

    
por 13.06.2014 / 23:18