为什么使用“lookup”或“hiera”函数的hiera查找的rspec puppet行为不同?

为什么使用“lookup”或“hiera”函数的hiera查找的rspec puppet行为不同?,puppet,rspec-puppet,Puppet,Rspec Puppet,运行我得到的rake规范测试: Warning: The function 'hiera' is deprecated in favor of using 'lookup'. See https://docs.puppet.com/puppet/4.10/reference/deprecated_language.html (file & line not available) 所以我决定改为使用查找。但是,我的hiera查找现在不起作用 v1 = lookup('key') # d

运行我得到的rake规范测试:

Warning: The function 'hiera' is deprecated in favor of using 'lookup'. See 
https://docs.puppet.com/puppet/4.10/reference/deprecated_language.html
(file & line not available)
所以我决定改为使用查找。但是,我的hiera查找现在不起作用

v1 = lookup('key') # doesn't work
v2 = hiera('key', undef) #works
我使用的是rspec-puppet-2.5.0和onceover3.2.0,因为在其他方面,我们使用的puppet企业版(相当于puppet 4.7.0)不适用于其他版本。难道你不喜欢Ruby版本控制吗


我怀疑的是,rspec puppet在拦截查找时出现了一些问题,没有找到正确的hiera.yaml。在我去调试之前,我想知道是否有人已经看到了这个

非常感谢@matt schuchard。这就是原因:hiera配置v3。所以我朝着错误的方向进行重构。首先升级hiera,然后puppet代码本身就是正确的序列。

如果没有进一步的信息,最好的猜测是您正在尝试使用hiera配置<4的puppet查找函数。注意:您可能正在使用Hiera>=4,但您的配置设置为较低。此外,您的警告会将您引导到4.10文档,因此您使用的PE版本比Puppet 4.7.0版本更高。我猜大概是2017年2月或2016年4月。不过,更多信息将有助于减少猜测。