使用嵌套键在人偶清单中获取 hiera 值

Get hiera value in puppet manifest with nested keys

我不熟悉将 hiera 与 puppet 一起使用(对 puppet 还是有些陌生)。

我写了这段 yaml:

---
web_mysql_server:
 mysql_database: "my_production"

然后我尝试在人偶清单中使用它:

database => hiera('web_mysql_server::mysql_database'),

这不起作用,产生错误

Error: Could not find data item web_mysql_server::mysql_database
  in any Hiera data file and no default supplied at
  /vagrant/puppet/modules/web_mysql_server/manifests/init.pp:33
  on node railstest.vm

(为了便于阅读,我在这里添加了一些 '\n')。

我怀疑(希望如此!)这是一个简单的语法错误,我没有发现。有人看出我哪里做错了吗?

基于hiera documentation,访问嵌套键的正确语法是

hiera('web_mysql_server.mysql_database')

限定键的这种语法并不总是存在,文档说它来自 Hiera 2.0。

我知道我们使用 puppet 3.8.3,但我们的设置尚不支持限定键。我们使用以下方法解决此限制:

$mysql_configuration = hiera('web_mysql_server')
# ...
database => $mysql_configuration['mysql_database']