我想设置Hiera的几个类和资源重复使用的值。 换句话说,通过Hiera设置一个全局参数。 所以,在适当的yaml文件中,我有:
myvarr: 'foo'
然后,在清单中,我试着:
if $myvar == 'foo'
以及
if $::myvar == 'foo'
无济于事。 这是怎么做的? 看着Puppet文档没有什么帮助,我只看到了基于类的例子。
从puppet 3 ,puppet会自动查找hiera ,但是如果你有很多模块或类,为每个模块或类variables自动查找会增加目录的编译时间,禁用自动查找
data_binding_terminus = none
我更喜欢明确的呼叫,只有我需要从hiera获取数据的hiera :
$var = hiera('foo')
Hiera将variables注入一个类。 所以你需要定义一个类我的类,并在你的hiera使用myclass :: var:foo。 这将使myclass中var = foo。
而且,hiera应该用于覆盖默认值,而不是默认值。