希拉如何运作?

心跳

我有以下hiera数据文件(yml)。

  • hiera / data / domain / abcd.com
  • hiera /数据/角色/ webserver.yml

可以说我有一个分配了“网络服务器”角色的p节点,并且其主机名是abcd.com

现在在-hiera / data / domain / abcd.com文件下,我有这个

config::xyz_category::name: 'bbbb'

我在-hiera / data / role / webserver.yml下有以下数据

config::xyz_category:
  username: 'aaaa'

我的hiera数据查找顺序如下所示(hiera.yml)

:backends: yaml
:logger: console
:merge_behavior: deeper
:yaml:
  :datadir: /etc/puppet/branches/hiera/data
:hierarchy:
   - fqdn/%{::fqdn}
   - role/%{::rolename}
   - domain/%{::domain}
   - defaults

所以我的问题是,我有一个为此“网络服务器”角色编写的模块。

在该模块中,我可以像下面这样调用hiera数据吗?

$config = hiera('config::xyz_category', {})

以便

$config['name'] should return 'bbbb'
$config['username'] should return 'aaaa'
约翰·布林格

不,不完全是。

一个Hiera优先级查询(例如由该hiera()功能执行的查询)会查找与该键关联完整值,并从提供优先级的最高优先级层次结构中获取整个值。在您描述的情况下,该值将是带有一个唯一键“用户名”的哈希。

另一方面,如果要从多个层次的数据层次结构中组合哈希值,则需要查找哈希合并查找。Hiera支持这一点,但是您需要使用正确的查找功能:

$config = hiera_hash('config::xyz_category', {})

请特别注意,之间的区别hiera()hiera_hash()(和hiera_array())主要是关于查找策略,而不是对返回值的类型。普通hiera()函数可以适当地返回标量,哈希和数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章