Документация для hiera на docs.puppetlabs.com Кажется, у меня сложилось впечатление, что я могу использовать марионеточный синтаксис для описания моих данных. Или, возможно, в будущем. Видеть: Coming soon
.
Присутствует ли эта функция в окончательной версии puppet и просто не задокументирована, или она все еще разрабатывается? Если эта функция присутствует, есть ли у кого-нибудь примеры того, как ее реально использовать?
Наличие puppet_backend.rb файл в моей системе дает, который был частью пакета puppetmaster, заставляет меня думать, что эта функция присутствует, но просто не задокументирована. Итак, я пытаюсь понять, как на самом деле это использовать.
Эта почта в списке рассылки марионеточных пользователей описывает базовое использование.
Переписанный более полным примером с Иерархией:
Учитывая 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}
не будет использоваться, так как точки не допускаются в именах классов.