使用Hiera设置全局variables

我想设置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应该用于覆盖默认值,而不是默认值。