hiera 数据源使用 puppet 语法?

Zor*_*che 5 puppet hiera

docs.puppetlabs.com 上的 hiera文档似乎给我的印象是我可以使用 puppet 语法来描述我的数据。或者将来可能会。见:Coming soon

此功能是否存在于 puppet 的发布版本中,只是没有记录,还是仍在开发中?如果存在此功能,是否有人有如何实际使用它的示例?

我的系统上存在puppet_backend.rb文件,它是 puppetmaster 包的一部分,这让我觉得这个功能存在,但只是没有记录。所以我想弄清楚如何实际使用它。

Cak*_*mox 2

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}由于类名称中不允许使用点,因此将不可用。