将节点分配给特定的Hiera层次结构



我在我的hiera.yaml中添加了像这样的层次结构

- "nodes/%{::certname}"
- "locations/{::location}.yaml"
- "groups/%{::group}.yaml"
- common

对于节点,我知道Hiera通过节点资源将它们抬起来。但是它如何适用于位置或团体?我需要创建一个自定义事实吗?如果是,我该如何分配该事实。我可以在网站的节点定义中这样做。

 node example.com{
    ::location = "new york"
    ::group = "mailer"  ... }

对于节点,我知道Hiera通过节点向上看它们 资源。

我不是很肯定我理解你的意思,但我认为你有误会。

但是它如何适用于位置或组?

hiera插值插入了木偶变量的值和/或某些插值函数的结果。在这方面,certnamelocationgroup是相同的,但是certname变量是由Puppet自动提供的,该变量基于代理商提供的证书以识别自身。(这是与节点块和节点termini完全正交的,尽管它们也是使用 the certname。)

我需要 创建自定义事实?

您可以这样做,因为代理提出的所有事实都可以作为顶级木偶变量可用。HIERA插值的变量不需要从事实中得出,但是在执行需要它们的Hiera查找之前,确实需要定义它们,并且目录构建器可以从目录构建器开始评估网站清单之前。

,如果是,我该如何分配该事实。

这完全是您如何实现事实的问题。

我可以在网站的节点定义中执行此操作。pp[?]

您不能在节点块中设置事实,但是您可以设置节点范围和top-scope 变量,然后将这些设置用于Hiera进行插值。对于节点范围,语法看起来像这样:

node example.com{
  $location = "new york"
  $group = "mailer"
  # ...
}

对于顶部范围,它是相同的,就在节点块之外。另外,您可以通过外部节点分类器定义顶级变量(除其他方面)。

相关内容

  • 没有找到相关文章

最新更新