puppet:合并哈希列表?

puppet:合并哈希列表?

如果我有一个接收哈希变量的 puppet 类,并且我想为哈希变量中的某些键提供默认值,我可以简单地使用哈希合并($hash1 + $hash2)来生成具有所需默认值的新类。例如,给定:

defaults:
  field1: default1
  field2: default2
  field3: defaul3

myconfig:
  field1: val1
  field3: val3

然后$defaults + $myconfig给我:

finalconfig:
  field1: val1
  field2: default2
  field3: val3

但如果我想用列表哈希值?也就是说,如果我的输入是:

myconfig:
  - field1: custom1
    field2: custom2
  - field1: custom1
    field3: custom3

我的默认设置如下:

defaults:
  field1: default1
  field2: default2
  field3: default3

我希望最终能得到这样的结果:

finalconfig:
  - field1: custom1
    field2: custom2
    field3: default3
  - field1: custom1
    field2: default2
    field3: custom3

有没有办法在傀儡清单中做到这一点?

答案1

这比我想象的要容易。如果我有:

$defaults = {
  field1 => default1,
  field2 => default2,
  field3 => default3
}

我可以将这些默认值应用于列表像这样的哈希值

$finalconfig = $config.map |cfg| {
  $defaults + $cfg
}

相关内容