Respuestas:
Creo que necesitamos más información sobre lo que está tratando de lograr ... Facter expone por defecto las variables de entorno FACTER_:
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
Pero para $ PATH o $ USER ... ¿Por qué no le dice a Puppet que use una ruta determinada o un usuario (para un ejecutivo) explícitamente?
Necesitaría usar una función del lado del servidor para esto si desea el entorno del puppetmaster. Dado que facter te ofrece datos de clientes.
$ RUBYLIB / puppet / parser / functions / env.rb:
module Puppet::Parser::Functions
newfunction(:env) do |args|
variable = args[0]
ENV[variable]
end
end
Úselo en sus manifiestos como:
$blah = env("PATH")
En Puppet Enterprise 2.5.1 puede acceder a través de / etc / env.
Compruebe también si tiene el entorno correcto definido en su /etc/puppetlabs/puppet/puppet.conf
- debería verse así:
[production]
modulepath = /etc/puppetlabs/puppet/environments/production/modules:/opt/puppet/share/puppet/modules
manifest = /etc/puppetlabs/puppet/environments/production/manifests/site.pp
La respuesta es un poco decepcionante: no puede (a menos que mejore Puppet o Facter). Recientemente escribí una breve publicación de blog sobre este tema: Acceso a variables de entorno dentro de Puppet
Un breve resumen: Facter se ejecuta en todos los sistemas de agentes de Puppet. Simplemente mejore Facter para recopilar todas las variables de entorno y luego puede acceder a ellas dentro de los manifiestos de Puppet.
¡Espero que ayude!