
Puppet 매니페스트 내에서 Puppet 마스터 구성 변수(예: confdir, masterport 등)에 액세스할 수 있습니까?
답변1
세 가지 방법이 있습니다.
- Jeff McCune은 자신의 github에 다음과 같은 기능을 정확하게 수행하는 멋진 기능을 제공합니다.
모듈 Puppet::Parser::Functions newfunction(:getconf, :type => :rvalue, :doc => 2010-09-29 getconf 함수는 단일 인수, 즉 구성 설정을 반환하고 해당 설정의 값을 반환합니다. 이는 --configprint 명령줄 인수와 유사합니다. 이 정보를 노출하는 것을 제외하고 구성 설정을 반환합니다. 언어에. END_HEREDOC 할 |인수| args.length != 1이면 raise Puppet::ParseError, ("ERROR: getconf()는 하나의 인수만 사용합니다.") 끝 인형[args[0]] end # do |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 덕분에꼭두각시 사용자에 대한 이 스레드