使用 Hiera 分离数据与代码
1. Hiera 后端插件 eyaml
eyaml 是一个特别受欢迎的后端插件,可通过hiera-eyamlRuby 宝石包获取。此后端允许在 YAML 数据中包含加密字符串,Puppet 在检索时会对数据进行解密。
2. 在清单中检索和使用 Hiera 值
在 Hiera 中查找键值很简单,Puppet 为此提供了一个非常直接的函数:
$plugins = hiera('reporting::plugins')当编译器在当前代理节点的清单中遇到这样的调用时,会触发在层次结构中进行搜索。具体的数据源由hiera.yaml文件中的层次结构决定,几乎总是依赖代理提供的事实值来进行灵活的数据源选择。
如果在代理的层次结构中找不到指定的键,主节点会报错并中止目录编译。为防止这种情况,通常在查找时提供默认值是明智的:
$plugins = hiera('reporting::plugins', [])在这种情况下,如果层次结构中未提及插件,Puppet 将使用空数组。另一方面,也可以有意省略默认值,这表明 Hiera 值是必需的。如果用户未能提供该值,Puppet 将中止清单编译。
3. 处理简单值
调用hiera函数检索值时,除了一个可选参数外,没有更多复杂的操作