无法伪造查找hiera插值哈希

时间:2019-04-03 11:50:44

标签: hiera

获取字符串而不是数组

这是我的common.yaml

aa::params:

- '--params:"abc.com'

- 'abc2.com'


test::packages:

  package1:

    ensure:'present'

    install_options: "%{lookup('aa:params')}"

这是我的清单文件

$packages = lookup("test::packages",undef,undef,'')

$params= lookup("aa::params",undef,undef,'')

$packages.each | String $packagename, Hash $attributes | {

notify { " ${packagename}, ${attributes[ensure]},${attributes['install_options]},${params} hello ":


  }

}

预期

"package1,present,[--params="abc.com, abc2.com"],[--params="abc.com, abc2.com"] hello"

实际

"package1,present,["--params=\"abc.com", "abc2.com\""],[--params="abc.com, abc2.com"] hello"

数组好像已经变得字符串化了,有人可以解释一下为什么我会变得这样吗

1 个答案:

答案 0 :(得分:0)

将查询结果插值到字符串中始终会生成一个字符串。如果要使用实际数组而不是严格的版本,则应改用alias。您的common.yaml看起来像这样:

aa::params:
  - '--params:"abc.com'
  - 'abc2.com'

test::packages:
  package1:
    ensure:'present'
    install_options: "%{alias('aa:params')}"

这里是related documentation