希拉等级制度不尊重事实

时间:2018-09-24 12:44:17

标签: automation puppet devops hiera

背景

我的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有什么原因吗?

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

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

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

但没有帮助

1 个答案:

答案 0 :(得分:1)

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

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