希拉等级制度不尊重事实



Background

我的 hiera.yaml 看起来像

version: 5
defaults:
datadir: /etc/puppet/hieradata
hierarchy:
- name: "YAML data: environments, stages, roles, common"
data_hash: yaml_data
paths:
- "roles/%{role}/common.yaml"
- "roles/common.yaml"
- "common.yaml"

Hieradata文件夹包含以下文件

/etc/puppet/hieradata/roles/development/common.yaml
/etc/puppet/hieradata/roles/common.yaml
/etc/puppet/hieradata/common.yaml

以上所有文件都有以下内容

---
foo : "bar"

我的事实输出如下

[root@allinone puppet]# facter role
development

问题陈述

执行puppet lookup foo命令时,会按预期输出bar

/etc/puppet/hieradata/common.yaml删除了文件,但仍然输出bar.这很好。

但是当我删除/etc/puppet/hieradata/roles/common.yaml输出时也没有显示任何内容。它不尊重文件/etc/puppet/hieradata/roles/development/common.yaml有什么原因吗?

我可以看到事实role使用facter命令。但我的上级不尊重这一点。

我也在 hiera.yaml 中尝试了以下内容

- "roles/%{::role}/common.yaml"
- "roles/%{facts.role}/common.yaml"

但没有任何帮助

经过繁琐的调试过程,问题出在事实文件上。

这些事实文件具有Windows样式的行结尾。更改为 linux 风格后,一切正常。

相关内容

  • 没有找到相关文章

最新更新