J'utilise Vagrant pour démarrer une configuration initiale de marionnettes et je ne sais pas comment inclure / exécuter plusieurs manifestes (autres que juste site.pp) dans le flux de travail d'exécution de marionnettes sans transformer les manifestes supplémentaires en modules et les inclure de cette façon.
Dans le répertoire des manifestes de marionnettes vers lequel je pointe Vagrant (voir ci-dessous), j'ai deux manifestes que je veux exécuter: site.pp et 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
Actuellement, j'ai site.pp être le manifeste qui appelle hierasetup.pp. Mon site.pp ressemble à ceci:
File {
owner => 'root',
group => 'root',
mode => '0644',
}
import "hierasetup.pp"
include jboss
Mais je reçois cette erreur sur la dépréciation de "importer":
Avertissement: L'utilisation de 'import' est déconseillée dans /tmp/vagrant-puppet-1/manifests/site.pp:33. Voir http://links.puppetlabs.com/puppet-import-deprecation (sur grammar.ra: 610: dans `_reduce_190 ')
Selon l'URL référencée sous "À essayer à la place", il est indiqué " Pour conserver vos définitions de nœuds dans des fichiers séparés, spécifiez un répertoire comme manifeste principal ".
En outre, ce doc fantoche sur les manifestes principaux dit:
" Recommandé: si vous utilisez fortement le manifeste principal au lieu de vous fier à une ENC, envisagez de changer le paramètre du manifeste en $ confdir / manifestes. Cela vous permet de diviser votre code de niveau supérieur en plusieurs fichiers tout en évitant le mot-clé d'importation. Il correspondra également au comportement des environnements simples. "
Il semble que Puppet puisse référencer un répertoire entier au lieu d'un simple fichier manifeste, de sorte que je m'attendrais à ce que Vagrant prenne des dispositions pour cela et me permette de supprimer la ligne " puppet.manifest_file =" site.pp "et de pointer vers le répertoire parent à la place dans lequel tous les fichiers * .pp seront exécutés. Cependant, la suppression de cette ligne dans Vagrant ne fait que générer une plainte concernant un "default.pp" attendu à sa place:
provisionneur de marionnettes: * Le manifeste de marionnettes configuré est manquant. Veuillez spécifier un chemin vers un manifeste existant: /some/path/puppet_files/manifests/default.pp
Donc:
- Premièrement, est-ce que je comprends la "nouvelle" façon (non-importée) d'appeler correctement plusieurs manifestes, en ce sens qu'un répertoire doit être pointé vers lequel tous les fichiers * .pp qu'il contient seront exécutés?
- Et deuxièmement, Vagrant a-t-il «rattrapé» ce nouveau changement pour tenir compte du référencement des répertoires conjointement avec la dépréciation de Puppet de «l'importation»?
Mise à jour: Grâce à Shane, le problème avec # 2 (le code de Vagrant n'est pas rattrapé pour permettre de pointer vers les répertoires de manifestes de marionnettes) a été signalé sur le site de suivi des problèmes GitHub de Vagrant et a depuis été corrigé: https://github.com/mitchellh/vagrant / numéros / 4169