是否有可能从Puppet清单中访问Puppet主configurationvariables(如confdir,masterport等)?
有三种方法。
模块Puppet :: Parser :: Functions
newfunction(:getconf,:type =>:rvalue,:doc =>
2010-09-29
getconf函数接受一个参数,一个名字
configuration设置并返回该设置的值。
它与--configprint命令行参数类似
返回configuration设置,除非它公开此信息
语言。
END_HEREDOC
do | args |
如果args.length!= 1那么
提高Puppet :: ParseError,(“错误:getconf()只有一个参数”)
结束
木偶[参数[0]]
结束#do | args |
结束#模块
#EOF
把它放在你的木偶服务器的libdir( /var/puppet/lib/puppet/parser/functions/getconf.rb )中的一个名为“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
不如我所知。 你想做什么?