如何将虚拟资源转换为哈希

时间:2017-11-23 22:09:25

标签: puppet

我有一个资源,将'hash'作为argumnent:

nginx::resource::map { ‘verions’:
  mappings => { hash of nginx upstreams here }
}

问题是,该哈希的数据在该地方不可用,但在整个环境中都不可用。所以我想出了在这些地方使用虚拟资源的想法:

@upstream_entry { ‘name’: location => ‘location’ }

然后在这个地方收集它们

Upstream_Entry <| |>

但这并没有多大帮助,因为它将数据收集在一起。如何将这些虚假资源转换为哈希值并将其提供给nginx?

这与模板有关,因为所有的nginx :: resource :: map都会创建一个带有哈希视角的文件。

1 个答案:

答案 0 :(得分:0)

经过几天的研究,我得出的结论是,这实际上是不可能的。

但是,我可以使用concat模块(带concat::fragment)从资源构建配置文件,方法是在其中定义concat::fragment

这就是为什么我进入pull request nginx模块来解决我的特殊情况:我只是不得不放弃使用哈希作为&#34;上游源&#34;的原因,而是使用Puppet资源来定义它们,并将它们与concat一起收集。