使用嵌套键获取puppet清单中的hiera值

时间:2016-05-14 13:20:05

标签: yaml puppet hiera

我是新手使用hiera with 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'以便于阅读)。

我怀疑(希望!)这是一个简单的语法错误,我没有得到。有人看到我做错了吗?

1 个答案:

答案 0 :(得分:4)

基于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']