我正在尝试从 Puppet DSL 清单中引用全局哈希,但scope.lookupvar
未能找到它。
我的声明如下rubydefs.pp
:
$my_hash = JSON.parse(`...some stuff that spits out JSON...`)
我毫无问题地在我的模板中使用了这个哈希。
在我的 DSL 文件中,mymodule.rb
我尝试像这样引用哈希:
foo = scope.lookupvar('::my_hash')
foo.keys.each do |i|
...
但foo
结果总是未定义。我尝试过'my_hash'
(没有::
),结果相同。这是来自 Puppet 代理的错误消息:
err: Could not retrieve catalog from remote server: Error 400 on SERVER: undefined method `keys' for :undefined:Symbol ....
我肯定是按正确的顺序包含了这些文件;我site.pp
看起来像
import "rubydefs.pp"
...
node mynode {
include mymodule
}
我如何从 Puppet DSL 文件中引用此哈希?