puppet 参数化类和层次

puppet 参数化类和层次

我在 RedHat Enterprise Linux 6 上运行 puppetlabs repos 中的 puppet open source 3.1.0,并使用 hiera 1.1.2。我遇到了一个问题,要么是 bug,要么是我对 hiera 如何使用参数化类存在根本性的误解。我设置了一个具有默认值的参数化子类。我试图在特定节点上将该值设置为其他值。该节点是在其中一个没有类的主清单中声明的​​,并且我在该清单中有 hiera_include('classes')。我试图更改“my_firewall”类中“activate”参数的值。当我的 hiera 节点文件如下所示时:

---
classes:
  - puppetmaster
rel::auth_users: ['puppet']
rel::my_firewall::activate: false 

rel::my_firewall 甚至没有加载(我已通知“activate”的两个布尔值,但没有看到它们)。rel::auth_users 参数传递正常。rel 类在 hiera 中的父类中定义。

当我将其更改为:

---
classes:
  - puppetmaster
  - rel::my_firewall
rel::auth_users: ['puppet']
rel::my_firewall::activate: false 

它加载 rel::my_firewall 类但使用默认值,而不是 false 值。

作为健全性检查,当我在节点清单中以正常方式定义事物时,一切正常:

node 'puppet.my.domain' {
  class { 'rel::my_firewall':
    activate => false,
  }
}

正确声明该类并将 activate 设置为 false。

我做错了吗?我的语法不对吗?任何帮助都非常感谢。

答案1

语法看起来不错。看起来像错误 17474- 错误值未正确加载。

作为一种解决方法,直到 3.2 版本发布,也许使用字符串?

相关内容