Назад | Перейти на главную страницу

источник данных hiera в использовании марионеточного синтаксиса?

Документация для 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} не будет использоваться, так как точки не допускаются в именах классов.