從清單存取傀儡配置變數?

從清單存取傀儡配置變數?

是否可以從 Puppet 清單中存取 Puppet master 設定變數(如 confdir、masterport 等)?

答案1

有三種方法。

  1. 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, (“錯誤:getconf() 只接受一個參數”)
        結尾
        木偶[參數[0]]
      結束#做|args|
    結束 # 模組
    # 結束符

將其放入 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感謝這個關於木偶用戶的帖子

相關內容