sh-beta Asked: 2010-01-28 08:22:18 +0800 CST2010-01-28 08:22:18 +0800 CST 2010-01-28 08:22:18 +0800 CST 从清单访问 puppet 配置变量? 772 是否可以从 Puppet 清单中访问 Puppet 主配置变量(如 confdir、masterport 等)? puppet 1 个回答 Voted Best Answer eric sorenson 2011-01-25T16:38:28+08:002011-01-25T16:38:28+08:00 有三种方式。 Jeff McCune 在他的 github 上有一个很好的功能,可以做到这一点: 模块 Puppet::Parser::Functions newfunction(:getconf, :type => :rvalue, :doc => 2010-09-29 getconf 函数接受一个参数,即 配置设置并返回该设置的值。 它类似于 --configprint 命令行参数 返回配置设置,但它会公开此信息 到语言。 END_HEREDOC 做 |args| 如果 args.length != 1 那么 raise Puppet::ParseError, ("ERROR: getconf() 只接受一个参数") 结尾 木偶[args[0]] 结束 # 做 |args| 结束#模块 #EOF 把它放在你的 puppet 服务器的 libdir ( ) 中一个名为 'getconf.rb' 的文件中/var/puppet/lib/puppet/parser/functions/getconf.rb,然后从清单中访问它 # somemanifest.pp $myvar = getconf("ssldir") notify {"set ssldir to ${myvar}":} 2. 在 Puppet 2.6 中更容易,因为整个设置设置都可以访问${settings::somevar},所以清单很简单: # 26manifest.pp $myvar = $settings::ssldir notify {"set ssldir to $myvar":} 3. 在 puppet 0.25 中,您可以使用内联模板: # 25manifest.pp $myvar = inline_template("<%= Puppet.settings[:ssldir] %>") notify {"set ssldir to ${myvar}":} 方法 2 和 3 感谢puppet-users 上的这个线程
有三种方式。
把它放在你的 puppet 服务器的 libdir ( ) 中一个名为 'getconf.rb' 的文件中
/var/puppet/lib/puppet/parser/functions/getconf.rb
,然后从清单中访问它2. 在 Puppet 2.6 中更容易,因为整个设置设置都可以访问
${settings::somevar}
,所以清单很简单:3. 在 puppet 0.25 中,您可以使用内联模板:
方法 2 和 3 感谢puppet-users 上的这个线程