我正在努力实现以下目标。 - 我在hiera yaml中为a.yaml定义了某些变量 - 我想从外部事实中读取一些变量。 - 但是,如果没有定义外部事实,我想使用一些默认值。
所以例如
---
key1: value1
key2: %{value2_from_facts} | value2
在这种情况下,如果自定义事实' value2fromfacts'没有定义,我希望key2有value2。这可能吗?
如果使用的事实未解决,是否有更好的替代方法将默认值分配给hiera变量?
答案 0 :(得分:1)
我不认为Hiera提供了关于这种情况的好方法。我建议在清单级别解决这个问题,例如
if $factvalue {
$myvalue = $factvalue
}
else {
$myvalue = hiera('key2')
}
要模块化,请创建一个应该像
一样的parser functionmy_hiera($factvalue,'key2')
有一个像
这样的身体override = args.shift
if override.empty?
# duplicate hiera()
key, default, override = HieraPuppet.parse_args(args)
HieraPuppet.lookup(key, default, self, override, :priority)
else
override
end
这完全没有经过考验,只能作为一般概念的草图。