将变量从 puppet class 传递到 hiera .yaml 文件

Pass variable from a puppet class to a hiera .yaml file

有谁知道是否可以将变量从 puppet class 传递到 .yaml 文件?

class my_module::my_class () {

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

objective就是可以获取.yaml文件中变量的值

my_module::my_class::date_from_class:

我不知道这是否可行。 提前致谢

可以interpolate the value of a class variable into your Hiera data:

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

但这样做通常是不明智的,因为 class 变量只有在 class 被求值后才会收到它们的值。 Class 评估顺序很难预测,并且可能会随着清单集或 class 参数值的变化而变化。

如果另一个 class 想要有问题的值,那么它可以直接访问 class 变量。尽管这受到同样的警告,但至少另一个 class 有权确保在访问变量之前评估变量的宿主 class:

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