Estoy usando Vagrant para iniciar una configuración inicial de Puppet y estoy confundido sobre cómo incluir / ejecutar múltiples manifiestos (aparte de solo site.pp) en el flujo de trabajo de ejecución de Puppet sin convertir los manifiestos adicionales en módulos e incluirlos de esa manera.
En el directorio de manifiestos de títeres al que apunto Vagrant (ver más abajo) tengo dos manifiestos que quiero ejecutar: site.pp y 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
Actualmente estoy teniendo site.pp como el manifiesto que llama hierasetup.pp. Mi site.pp se ve así:
File {
owner => 'root',
group => 'root',
mode => '0644',
}
import "hierasetup.pp"
include jboss
Pero me sale este error acerca de la obsolescencia de "importar":
Advertencia: El uso de 'importar' está en desuso en /tmp/vagrant-puppet-1/manifests/site.pp:33. Ver http://links.puppetlabs.com/puppet-import-deprecation (en grammar.ra: 610: en `_reduce_190 ')
De acuerdo con la URL a la que se hace referencia en "Cosas para probar en su lugar", dice " Para mantener sus definiciones de nodo en archivos separados, especifique un directorio como su manifiesto principal ".
Además, este documento de títeres sobre los principales manifiestos dice:
" Recomendado: si está utilizando el manifiesto principal en lugar de confiar en una ENC, considere cambiar la configuración del manifiesto a $ confdir / manifiestos. Esto le permite dividir su código de nivel superior en varios archivos mientras evita la palabra clave de importación. también coincidirá con el comportamiento de entornos simples " .
Parece que Puppet puede hacer referencia a un directorio completo en lugar de solo un archivo de manifiesto específico, de modo que esperaría que Vagrant hiciera una provisión para esto y me permitiera colocar la línea " puppet.manifest_file =" site.pp "y señalar el directorio padre en su lugar en el que se ejecutarán todos los archivos * .pp. Sin embargo, eliminar esa línea en Vagrant simplemente genera una queja sobre un "default.pp" esperado en su lugar:
aprovisionador de marionetas: * Falta el manifiesto de marionetas configurado. Especifique una ruta a un manifiesto existente: /some/path/puppet_files/manifests/default.pp
Entonces:
- En primer lugar, ¿entiendo la forma "nueva" (no importada) de llamar a múltiples manifiestos correctamente, en el sentido de que se debe apuntar a un directorio en el que se ejecutarán todos los archivos * .pp dentro de él?
- Y en segundo lugar, ¿Vagrant se ha "puesto al día" con este nuevo cambio para acomodar la referencia de directorios junto con la depreciación de Puppet de "importación"?
Actualización: Gracias a Shane, el problema con el n. ° 2 (el código del vagabundo no se detecta para permitir señalar a los directorios de manifiesto de títeres) se informó en el sitio del rastreador de problemas GitHub de Vagrant y desde entonces se ha parcheado: https://github.com/mitchellh/vagrant / temas / 4169