Sto usando Vagrant per avviare alcune configurazioni iniziali di Puppet e sono confuso su come includere / eseguire più manifest (oltre a site.pp) nel flusso di lavoro di esecuzione delle marionette senza trasformare i manifesti extra in moduli e includerli in quel modo.
Nella directory dei manifest di marionette a cui indico Vagrant (vedi sotto) ho due manifest che voglio eseguire: 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
Attualmente sto avendo site.pp essere il manifest che chiama hierasetup.pp. Il mio sito.pp è simile al seguente:
File {
owner => 'root',
group => 'root',
mode => '0644',
}
import "hierasetup.pp"
include jboss
Ma ottengo questo errore sulla deprecazione di "import":
Avvertenza: l'uso di 'import' è deprecato in /tmp/vagrant-puppet-1/manifests/site.pp:33. Vedi http://links.puppetlabs.com/puppet-import-deprecation (su grammar.ra: 610: in `_reduce_190 ')
Secondo l'URL di riferimento in "Cose da provare invece", dice " Per mantenere le definizioni del nodo in file separati, specificare una directory come manifest principale ".
Inoltre questo documento fantoccio sui principali manifest dice:
" Consigliato: se stai utilizzando il manifest principale pesantemente invece di fare affidamento su un ENC, considera di cambiare l'impostazione manifest in $ confdir / manifest. Ciò ti consente di dividere il codice di livello superiore in più file evitando la parola chiave import. corrisponderà anche al comportamento di ambienti semplici " .
Sembra che Puppet possa fare riferimento a un'intera directory anziché solo a un file manifest specifico, in modo che mi aspetto che Vagrant effettui una disposizione per questo e mi consenta di eliminare la riga " puppet.manifest_file =" site.pp "e puntare a la directory padre invece in cui verranno eseguiti tutti i file * .pp. Tuttavia, rimuovere quella riga in Vagrant genera semplicemente un reclamo su un "default.pp" previsto al suo posto:
Puppet Provider: * Manca il manifest Puppet configurato. Specificare un percorso per un manifest esistente: /some/path/puppet_files/manifests/default.pp
Così:
- In primo luogo, capisco il modo "nuovo" (non di importazione) di chiamare correttamente più manifest, in quanto si deve indicare una directory in cui verranno eseguiti tutti i file * .pp al suo interno?
- E in secondo luogo, Vagrant ha "recuperato" questa nuova modifica per accogliere la referenziazione delle directory insieme alla deprecazione di "importazione" di Puppet?
Aggiornamento: grazie a Shane il problema con # 2 (il codice di Vagrant non è stato raggiunto per consentire il puntamento alle directory dei manifest di marionette) è stato segnalato sul sito di localizzazione dei problemi GitHub di Vagrant e da allora è stato corretto: https://github.com/mitchellh/vagrant / temi / 4169