Puppet
在無主設置中使用 hiera 和獲取類的值時遇到問題
我正在執行一個無主木偶設置,它以下列方式應用木偶更改。
puppet apply /tmp/puppet/manifests/site.pp --modulepath=/tmp/puppet/modules --hiera_config=/tmp/puppet/hiera.yaml
我一直在嘗試在 hiera 中處理我們擁有的不同類型的節點,並且作為起點一直嘗試使用在節點上設置的自定義事實。這個事實是節點類型,在這個例子中被設置為無盤值。
節點上的Facter 辨識出這個事實。
# facter -y | grep nodetype nodetype: diskless
hiera.yaml 包含以下內容
--- :backends: - yaml :yaml: :datadir: /tmp/puppet/data :hierarchy: - node/%{::nodetype}
在 /tmp/puppet/data/node/diskless.yaml 有
--- cluster: blues
雖然這樣做之後我嘗試仔細檢查 hiera 然後根據需要設置變數,但它似乎不起作用。
hiera -y diskless.yaml cluster nil
有沒有更好的方法來調試問題。我確信這很簡單,儘管如果 hiera 不能(或不能)在這個案例中執行,那將是令人失望的。
乾杯
編輯1:
附加調試
hiera cluster '::nodetype=diskless' -d DEBUG: Fri Oct 31 16:54:01 -0400 2014: Hiera YAML backend starting DEBUG: Fri Oct 31 16:54:01 -0400 2014: Looking up cluster in YAML backend DEBUG: Fri Oct 31 16:54:01 -0400 2014: Looking for data source defaults DEBUG: Fri Oct 31 16:54:01 -0400 2014: Cannot find datafile /var/lib/hiera/defaults.yaml, skipping DEBUG: Fri Oct 31 16:54:01 -0400 2014: Looking for data source global DEBUG: Fri Oct 31 16:54:01 -0400 2014: Cannot find datafile /var/lib/hiera/global.yaml, skipping nil
編輯2:
設置標誌 –hiera-config 似乎沒有任何作用,需要將 /etc/hiera.yaml 符號連結到您希望使用的 hiera.yaml 配置。
編輯 3:在將 /etc/hiera.yaml 符號連結到 /tmp/puppet/hiera.yaml 之後,我能夠查找 hiera 變數,但無法以預期的方式在 puppet 清單中使用它們。相反,我不得不直接呼叫 hiera
$networking_config = hiera('networking::network::networking_config','no')
非常混亂
試試這個:
hiera cluster '::nodetype=diskless'
查看事實來源文件