我似乎无法弄清楚如何访问我放入 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_name
为vxx-osc4.example.com
小写,而在 defaults.yaml 文件中,的值controller_vip_name
在VXX-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
文件。
我在这里做错了什么?