如何访问人偶清单中的环境变量?

joe*_*ker 17 puppet

如何访问人偶清单中的环境变量(从人偶守护进程的环境中)?

小智 8

我认为我们需要更多关于您想要实现的目标的信息...... Facter 默认公开 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
Run Code Online (Sandbox Code Playgroud)

但是对于 $PATH 或 $USER... 为什么不明确告诉 puppet 使用给定的路径或用户(对于 exec ?)?

  • 有断开的链接 (2认同)

And*_*ewF 7

如果您想要 puppetmaster 的环境,则需要为此使用服务器端功能。由于 facter 为您提供客户事实。

$RUBYLIB/puppet/parser/functions/env.rb:

module Puppet::Parser::Functions
  newfunction(:env) do |args|
    variable = args[0]
    ENV[variable]
  end
end
Run Code Online (Sandbox Code Playgroud)

在您的清单中使用它,例如:

$blah = env("PATH")
Run Code Online (Sandbox Code Playgroud)


小智 6

据我所知,Puppet 在没有任何 Bash 环境变量的情况下运行。它似乎从 Facter 获得所有环境。有一个脚本这里导入您经常envvars中为Facter envvars中。