48 votes

Comment imprimer quelque chose lors de l'exécution du client Puppet?

Je veux imprimer des messages et des variables lors de l'exécution de Puppet. J'ai vu qu'il y avait deux fonctions qui pourraient aider mais ne pouvaient pas vraiment les utiliser. Mon fichier site.pp :

 info "running site.pp info"
debug "running site.pp debug"
 

Quand je cours sur le client:

 puppet -t
 

Je n'ai pas ces empreintes.

61voto

Aleksey Timohin Points 113

Voici le script de marionnette avec toutes les fonctions de journal de marionnette disponibles.

log_levels.pp

 node default {
  notice("try to run this script with -v and -d to see difference between log levels")
  notice("function documentation is available here: http://docs.puppetlabs.com/references/latest/function.html")
  notice("--------------------------------------------------------------------------")

  debug("this is debug. visible only with -d or --debug")
  info("this is info. visible only with -v or --verbose or -d or --debug")
  alert("this is alert. always visible")
  crit("this is crit. always visible")
  emerg("this is emerg. always visible")
  err("this is err. always visible")
  warning("and this is warning. always visible")
  notice("this is notice. always visible")
  #fail will break execution
  fail("this is fail. always visible. fail will break execution process")

}
 

Sortie de script (sur marionnette 2.7): différentes couleurs de niveaux de journal

NB: les couleurs de la marionnette 3.x peuvent changer (toutes les erreurs seront imprimées en rouge)!

56voto

Michael Gisbers Points 416

à partir de la documentation de la fonction Puppet

 info: Log a message on the server at level info.
debug: Log a message on the server at level debug.
 

Vous devez regarder un fichier journal de votre marionnettiste pour trouver vos informations / messages de débogage.

Vous pouvez utiliser

 notify{"The value is: ${yourvar}": }
 

pour produire une sortie vers votre client marionnette

19voto

rahul khengare Points 41

Si vous souhaitez notifier l'utilisateur avec différents types de messages tels que des informations, un débogage, une erreur, un avertissement, des alertes, des messages critiques et d'urgence, utilisez le métaparamètre «niveau de journal» dans les ressources de marionnettes.

Avec l'utilisation de loglevel, vous pouvez utiliser les mêmes ressources pour différents types de messages d'erreur.

par exemple pour produire des messages de débogage que vous pouvez utiliser comme,

  notify {"debug mesaage":
      loglevel => debug,
    }
 

11voto

Sekm Points 1153

Tout comme alternative, vous pouvez envisager d'utiliser des execs ... (je ne le recommanderais pas cependant)

 exec { 'this will output stuff':
  path      => '/bin',
  command   => 'echo Hello World!',
  logoutput => true,
}
 

Donc, lorsque vous exécutez marionnette, vous devriez trouver une sortie comme ceci:

 notice: /Stage[main]//Exec[this will output stuff]/returns: Hello World!
notice: /Stage[main]//Exec[this will output stuff]/returns: executed successfully
notice: Finished catalog run in 0.08 seconds
 

La première ligne étant sortie enregistrée.

9voto

Simon Points 91

Vous pouvez exécuter le client comme ceci ...

 puppet agent --test --debug --noop
 

avec cette commande, vous obtenez toute la sortie que vous pouvez obtenir.

extrait d'aide de marionnette
 * --test:
  Enable the most common options used for testing. These are 'onetime',
  'verbose', 'ignorecache', 'no-daemonize', 'no-usecacheonfailure',
  'detailed-exitcodes', 'no-splay', and 'show_diff'.
 

REMARQUE: il n'est pas nécessaire d'inclure --verbose lorsque vous utilisez le commutateur --test|-t , cela implique également le --verbose .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X