#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
}