Передайте переменную из класса puppet в файл hiera .yaml

#puppet #hiera

Вопрос:

кто-нибудь знает, можно ли передать переменную из кукольного класса в a?файл yaml?

 class my_module::my_class () {

  $current_date = '2021-10-12';
}
 

Цель состояла бы в том, чтобы иметь возможность получить значение переменной в файле .yaml

 my_module::my_class::date_from_class:
 

Я не знаю, возможно ли это каким-либо образом.
Заранее спасибо

Ответ №1:

Можно интерполировать значение переменной класса в ваши данные Hiera:

 my_module::my_class::date_from_class: %{my_module::my_class::current_date}
 

Но обычно это неразумно делать, потому что переменные класса не получают своих значений до тех пор, пока класс не будет оценен. Порядок оценки класса трудно предсказать и может изменяться по мере изменения набора манифестов или значений параметров класса.

Если другой класс хочет получить рассматриваемое значение, он может просто получить прямой доступ к переменной класса. Хотя это с той же оговоркой, по крайней мере, другой класс имеет право гарантировать, что класс хоста переменной будет оценен до того, как к переменной будет получен доступ:

 class my_module::another_class {
  include my_module::my_class
  $the_date = $my_module::my_class::current_date
}