docs.puppetlabs.com 上的 hiera文档似乎给我的印象是我可以使用 puppet 语法来描述我的数据。或者将来可能会。见:Coming soon
。
此功能是否存在于 puppet 的发布版本中,只是没有记录,还是仍在开发中?如果存在此功能,是否有人有如何实际使用它的示例?
我的系统上存在puppet_backend.rb文件,它是 puppetmaster 包的一部分,这让我觉得这个功能存在,但只是没有记录。所以我想弄清楚如何实际使用它。
puppet-users 邮件列表上的这篇文章描述了基本用法。
使用层次结构重写为更完整的示例:
给出hiera.yaml
这样的:
:backends:
- puppet
:puppet:
:datasource: data
:hierarchy:
- %{osfamily}::%{operatingsystem}::%{architecture}
- %{osfamily}::%{operatingsystem}
- %{osfamily}
- global
Run Code Online (Sandbox Code Playgroud)
并在模块中给出一个简单的类:
class foo::bar {
$baz = hiera('baz')
}
Run Code Online (Sandbox Code Playgroud)
$baz
后端将按以下顺序查找包含变量的类:
data::RedHat::CentOS::x86_64
data::RedHat::CentOS
data::RedHat
data::global
foo::bar::data
foo::data
Run Code Online (Sandbox Code Playgroud)
默认数据源名称为data
,但可以自定义。给定klaatu
,它将搜索:
klaatu::RedHat::CentOS::x86_64
klaatu::RedHat::CentOS
klaatu::RedHat
klaatu::global
foo::bar::klaatu
foo::klaatu
Run Code Online (Sandbox Code Playgroud)
无论层次结构如何,最后两个似乎都是添加的,并且始终采用%{calling_class}::%{datasource}
和的格式%{calling_module}::%{datasource}
。
与 yaml 后端相比,在这些层次结构中可以使用的事实类型似乎存在限制。例如,%{clientcert}
由于类名称中不允许使用点,因此将不可用。
归档时间: |
|
查看次数: |
672 次 |
最近记录: |