0

我正在努力实现以下目标。- 我在 hiera yaml 中为 a.yaml 定义了某些变量 - 我想从外部事实中读取一些变量。- 但是,每当未定义外部事实时,我想使用一些默认值。

所以例如

---
key1: value1
key2: %{value2_from_facts} | value2

在这种情况下,如果未定义自定义事实“value2fromfacts”,我希望 key2 具有 value2。这可能吗?

如果使用的事实没有得到解决,是否有更好的替代方法可以将默认值分配给 hiera 变量?

4

1 回答 1

1

我不认为 Hiera 提供了解决这种情况的好方法。我建议在清单级别解决这个问题,例如

if $factvalue {
  $myvalue = $factvalue
}
else {
  $myvalue = hiera('key2')
}

为了模块化这个,创建一个解析器函数,它应该像

my_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

这是完全未经测试的,只能作为总体思路的草图。

于 2014-05-14T10:53:23.753 回答