从清单访问puppetconfigurationvariables?

是否有可能从Puppet清单中访问Puppet主configurationvariables(如confdir,masterport等)?

有三种方法。

  1. Jeff McCune在他的github上有一个很好的function,
    模块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

不如我所知。 你想做什么?