hiera 数据源使用 puppet 语法吗?

hiera 数据源使用 puppet 语法吗?

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

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

的存在金宝博官方网站ppet_后端.rb我系统上的文件是 puppetmaster 软件包的一部分,这让我觉得这个功能是存在的,只是没有记录。所以我想弄清楚如何实际使用它。

答案1

这个帖子puppet-users 邮件列表上描述了基本用法。

使用层次结构重写更完整的示例:

给出hiera.yaml这样的:

:backends:
  - puppet
:puppet:
  :datasource: data
:hierarchy:
  - %{osfamily}::%{operatingsystem}::%{architecture}
  - %{osfamily}::%{operatingsystem}
  - %{osfamily}
  - global

并给出模块内的简单类:

class foo::bar {
  $baz = hiera('baz')
}

$baz后端将按以下顺序查找包含变量的类:

data::RedHat::CentOS::x86_64
data::RedHat::CentOS
data::RedHat
data::global
foo::bar::data
foo::data

默认数据源名称是data,但可以自定义。给定klaatu,它将搜索:

klaatu::RedHat::CentOS::x86_64
klaatu::RedHat::CentOS
klaatu::RedHat
klaatu::global
foo::bar::klaatu
foo::klaatu

%{calling_class}::%{datasource}最后两个似乎是无论层次结构如何都被添加的,并且总是采用和的格式%{calling_module}::%{datasource}

与 yaml 后端相比,在这些层次结构中可以使用的事实类型似乎存在限制。例如,%{clientcert}由于类名中不允许使用点,因此将无法使用。

相关内容