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

Yaml 使用嵌套键获取puppet清单中的hiera值,yaml,puppet,hiera,Yaml,Puppet,Hiera,我对使用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_data

我对使用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('web_mysql_server.mysql_database')
这种限定键的语法并不总是存在,文档中说它来自Hiera2.0

我知道我们使用puppet 3.8.3,我们的设置中还不支持合格密钥。我们通过这种方法解决了这一限制:

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

你用的是什么版本的puppet?puppet是3.4.3(Ubuntu14.04 LTS)。dpkg说我用的是Hiera1.3,点符号对我也不起作用。那么,在Hiera2.0之前,嵌套键是不可能的?我相信是的。我将用可能的解决方案更新我的答案