Puppet

在無主設置中使用 hiera 和獲取類的值時遇到問題

  • October 22, 2021

我正在執行一個無主木偶設置,它以下列方式應用木偶更改。

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'

查看事實來源文件

引用自:https://serverfault.com/questions/640668