Je veux dire les variables d'environnement bash comme $ PATH et $ USER.
joeforker
Réponses:
8
Je pense que nous avons besoin de plus d'informations sur ce que vous essayez de réaliser ... Facter expose par défaut les variables d'environnement FACTER_:
Il est très ordinaire de contrôler un interprète avec des variables d'environnement, pour diverses raisons ... surtout si vous pensez parfois à exécuter marionnette en tant qu'interprète (dans la ligne #!?) Au lieu d'un démon ...
joeforker
Excellente réponse. J'ai perdu beaucoup de temps à ne pas remarquer que toutes les variables Facter ont des noms en minuscules même si la variable d'environnement a un nom en majuscules. Tout le monde prête une attention particulière à l'exemple que jnrg donne.
Russell Silva du
1
il y a un lien cassé
kenorb
7
Vous auriez besoin d'utiliser une fonction côté serveur pour cela si vous voulez l'environnement du marionnettiste. Depuis facter, vous obtenez des informations sur les clients.
$ RUBYLIB / puppet / parser / functions / env.rb:
module Puppet::Parser::Functions
newfunction(:env) do |args|
variable = args[0]
ENV[variable]
end
end
D'après ce que je peux dire, Puppet fonctionne sans aucune variable d'environnement Bash. Il semble tirer tout son environnement de Facter. Il y a un script ici pour importer vos envvars réguliers en tant qu'envars Facter.
La réponse est un peu décevante: vous ne pouvez pas (sauf si vous améliorez Puppet ou Facter). J'ai récemment écrit un court article de blog sur ce sujet:
Accéder aux variables d'environnement dans Puppet
Un bref résumé: Facter s'exécute sur chaque système d'agent Puppet. Améliorez simplement Facter pour collecter toutes les variables d'environnement et ensuite vous pouvez y accéder dans les manifestes Puppet.
Réponses:
Je pense que nous avons besoin de plus d'informations sur ce que vous essayez de réaliser ... Facter expose par défaut les variables d'environnement FACTER_:
https://docs.puppetlabs.com/guides/faq.html#can-i-access-environment-variables-with-facter
Mais pour $ PATH ou $ USER ... Pourquoi ne pas dire à la marionnette d'utiliser explicitement un chemin donné ou un utilisateur (pour un exec?)?
la source
Vous auriez besoin d'utiliser une fonction côté serveur pour cela si vous voulez l'environnement du marionnettiste. Depuis facter, vous obtenez des informations sur les clients.
$ RUBYLIB / puppet / parser / functions / env.rb:
Utilisez-le dans vos manifestes comme:
la source
D'après ce que je peux dire, Puppet fonctionne sans aucune variable d'environnement Bash. Il semble tirer tout son environnement de Facter. Il y a un script ici pour importer vos envvars réguliers en tant qu'envars Facter.
la source
Dans Puppet enterprise 2.5.1, vous pouvez y accéder via / etc / env.
Vérifiez également si l'environnement correct est défini dans votre
/etc/puppetlabs/puppet/puppet.conf
- il devrait ressembler à ceci:la source
La réponse est un peu décevante: vous ne pouvez pas (sauf si vous améliorez Puppet ou Facter). J'ai récemment écrit un court article de blog sur ce sujet: Accéder aux variables d'environnement dans Puppet
Un bref résumé: Facter s'exécute sur chaque système d'agent Puppet. Améliorez simplement Facter pour collecter toutes les variables d'environnement et ensuite vous pouvez y accéder dans les manifestes Puppet.
J'espère que cela pourra aider!
la source