J'essaie d'exécuter un seul module comme celui-ci:
puppet apply --verbose --modulepath=moduleshere --noop -e 'include myclass'
Cependant, j'obtiens ce genre d'erreur, indiquant que le chemin n'est pas défini
Parameter unless failed: '[ -e "${logfile}" ]' is not qualified and no path was specified. Please qualify the command or specify a path.
Je ne veux pas spécifier explicitement le chemin dans chacun de ces emplacements, et cela fonctionne très bien lorsqu'il est exécuté dans le cadre d'une course de marionnettes complète. Comment spécifier le chemin lors de l'exécution d'un seul module?
Réponses:
Les commandes d'une
Exec
ressource doivent être entièrement qualifiées (c'est-/usr/bin/test
à- dire au lieu detest
) ou l'path
attribut de cetteExec
ressource doit être défini.Si vous pouvez modifier le (s) manifeste (s) Puppet, vous pouvez simplement ajouter la définition suivante pour définir un
path
attribut par défaut pour toutes lesExec
ressources/bin
:En tant que solution de contournement (plus ou moins) sale, vous pouvez également définir la valeur
path
par défaut pour touteExec
ressource sur la ligne de commande:Pointeurs de documentation:
la source
Cela .. ne devrait pas fonctionner dans le cadre d'une course complète. Il a besoin d'un chemin complet vers l'exécutable dans la
unless
commande. Vous avez peut-être un chemin d'accès défini dans un fichier global qui fait partie de vos exécutions complètes?Essayez
unless => '/usr/bin/[ -e "${logfile}" ]'
plutôt.la source
Je suis d'accord avec Shane que le chemin par défaut est probablement défini dans un manifeste de portée mondiale. Vous pouvez faire de même mais vous ne pouvez pas le passer comme argument, utilisez donc stdin:
ou placez l'Exec et incluez des lignes dans
example.pp
puis utilisezpuppet apply -v ... example.pp
.la source
Vous devez utiliser un chemin d'accès complet.
Par exemple, soit:
ou:
la source