在无主设置中使用 hiera 并获取类的值设置时遇到问题

在无主设置中使用 hiera 并获取类的值设置时遇到问题

我正在运行一个无主傀儡设置,以以下方式应用傀儡变化。

puppet apply /tmp/puppet/manifests/site.pp --modulepath=/tmp/puppet/modules --hiera_config=/tmp/puppet/hiera.yaml

我一直在尝试在 hiera 中处理我们拥有的不同类型的节点,并作为起点尝试使用在节点上设置的自定义事实。此事实是 nodetype,在此示例中设置为 diskless 的值。

节点上的 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')

非常混乱

答案1

尝试这个:

hiera cluster '::nodetype=diskless'

事实来源文献

相关内容