Come posso accedere a una variabile d'ambiente (dall'ambiente del demone fantoccio) in un manifest fantoccio?
Come posso accedere a una variabile d'ambiente (dall'ambiente del demone fantoccio) in un manifest fantoccio?
Risposte:
Penso che abbiamo bisogno di ulteriori informazioni su ciò che stai cercando di ottenere ... Facter espone per impostazione predefinita FACTER_ variabili d'ambiente:
https://docs.puppetlabs.com/guides/faq.html#can-i-access-environment-variables-with-facter
$ FACTER_FOO="bar"
$ export FACTER_FOO
$ facter | grep 'foo'
foo => bar
Ma per $ PATH o $ USER ... Perché non dice al burattino di usare esplicitamente un determinato percorso o un utente (per un dirigente?)?
Dovresti utilizzare una funzione lato server per questo se vuoi l'ambiente del burattinaio. Dal momento che facter ti fornisce informazioni sui clienti.
$ RUBYLIB / burattino / parser / funzioni / env.rb:
module Puppet::Parser::Functions
newfunction(:env) do |args|
variable = args[0]
ENV[variable]
end
end
Usalo nei tuoi manifest come:
$blah = env("PATH")
In Puppet enterprise 2.5.1 è possibile accedervi tramite / etc / env.
Controlla anche se hai definito l'ambiente corretto nel tuo /etc/puppetlabs/puppet/puppet.conf
- dovrebbe assomigliare a questo:
[production]
modulepath = /etc/puppetlabs/puppet/environments/production/modules:/opt/puppet/share/puppet/modules
manifest = /etc/puppetlabs/puppet/environments/production/manifests/site.pp
La risposta è un po 'deludente: non puoi (a meno che non valorizzi Puppet o Facter). Di recente ho scritto un breve post sul blog su questo argomento: accesso alle variabili di ambiente all'interno di Puppet
Un breve riassunto: Facter è in esecuzione su ogni sistema agente Puppet. È sufficiente migliorare Facter per raccogliere tutte le variabili di ambiente e quindi è possibile accedervi dai manifest Puppet.
Spero possa aiutare!