매니페스트에서 꼭두각시 구성 변수에 액세스합니까?

매니페스트에서 꼭두각시 구성 변수에 액세스합니까?

Puppet 매니페스트 내에서 Puppet 마스터 구성 변수(예: confdir, masterport 등)에 액세스할 수 있습니까?

답변1

세 가지 방법이 있습니다.

  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 덕분에꼭두각시 사용자에 대한 이 스레드

관련 정보