1

我似乎无法弄清楚如何访问我放入 yaml 文件的 hiera 数据。

这是我的 hiera.yaml:

[root@vxx-osc4-ppt-001 puppetmaster]# cat /etc/puppetlabs/puppet/hiera.yaml
---
:backends:
  - yaml
:hierarchy:
  - "%{pod_prefix}"
  - defaults
  - "%{clientcert}"
  - "%{environment}"
  - global

:yaml:
# datadir is empty here, so hiera uses its defaults:
# - /var/lib/hiera on *nix
# - %CommonAppData%\PuppetLabs\hiera\var on Windows
# When specifying a datadir, make sure the directory exists.
  :datadir:

更改上述文件后,我重新启动了 3.7 PE Puppet master,如下所示:

[root@vxx-osc4-ppt-001 puppetmaster]# systemctl restart pe-httpd

我还有这两个 yaml 文件,其中包含类参数 controller_vip_name 的键/值对。所以我有这个...

[root@vxx-osc4-ppt-001 puppetmaster]# grep "^controller_vip_name:" /var/lib/hiera/*yaml
/var/lib/hiera/defaults.yaml:controller_vip_name: VXX-osc4.example.com
/var/lib/hiera/vxx-osc4.yaml:controller_vip_name: vxx-osc4.example.com

...请注意,在文件vxx-osc4.yaml中的值全部controller_vip_namevxx-osc4.example.com 小写,而在 defaults.yaml 文件中,的值controller_vip_nameVXX-osc4.example.com VXX 为大写的地方。我正在尝试像这样对我的设置进行质量检查:

[root@vxx-osc4-ppt-001 puppetmaster]# hiera controller_vip_name
VXX-osc4.example.com

上面的命令有效,hiera 从defaults.yaml文件中检索数据但是这个命令不起作用:

[root@vxx-osc4-ppt-001 puppetmaster]# hiera "pod_prefix=vxx-osc4" controller_vip_name
controller_vip_name

我认为hiera完全忽略了我的vxx-osc4.yaml文件。

我在这里做错了什么?

4

1 回答 1

2

您的 hiera 命令是错误的:

Usage: hiera [options] key [default value] [variable='text'...]

请注意,变量键之后。

于 2015-07-21T00:05:41.947 回答