从 Puppet DSL 引用全局哈希

从 Puppet DSL 引用全局哈希

我正在尝试从 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 文件中引用此哈希?

相关内容