无法伪装查找 hiera 插值哈希
unable to puppet lookup a hiera interpolated hash
获取字符串而不是数组
这是我的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"
看起来数组正在被字符串化,谁能解释一下为什么我会变成这样
将查找结果插入到字符串中总是会得到一个字符串。如果你想要实际的数组而不是 strigyfied 版本,你应该使用 alias
代替。您的 common.yaml
看起来像这样:
aa::params:
- '--params:"abc.com'
- 'abc2.com'
test::packages:
package1:
ensure:'present'
install_options: "%{alias('aa:params')}"
获取字符串而不是数组
这是我的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"
看起来数组正在被字符串化,谁能解释一下为什么我会变成这样
将查找结果插入到字符串中总是会得到一个字符串。如果你想要实际的数组而不是 strigyfied 版本,你应该使用 alias
代替。您的 common.yaml
看起来像这样:
aa::params:
- '--params:"abc.com'
- 'abc2.com'
test::packages:
package1:
ensure:'present'
install_options: "%{alias('aa:params')}"