假设有一个hiera哈希:
foo::bar:
key1: 'value1'
key2: 'value2'
是否有可能直接使用查找函数查找key1
的值?
我想到了这样的事情:
class myclass (
String $value1 = lookup('foo::bar::key1'),
) {
...
}
我能解决这个问题的唯一方法是查找哈希并在以后使用hash['key1']
访问值,但也许有一种更干净的方法来做到这一点。
不幸的是,在 Puppet 中没有办法仅使用lookup
来做到这一点。
从根本上说,lookup
通过查找与哈希键无关的 Hiera 键来工作。foo::bar::baz
形式的 Hiera 键实际上是一个非结构化字符串 - 这并不意味着存在称为foo
或foo::bar
的哈希。::
只是键字符串的一部分 - 它不是哈希查找的语法糖,例如,在 JavaScript 中.
。
lookup
记录在
https://puppet.com/docs/puppet/latest/hiera_automatic.html
这现在可以在 puppet(v6 及更高版本(中实现! 您使用点表示法
lookup('foo::bar.key1')
请参阅此处的木偶文档:https://puppet.com/docs/puppet/7/hiera_automatic.html#access_hash_array-elements_keysubkey_notation