我已经在我的hiera.yaml中添加了这样的层次结构
对于节点,我知道hiera通过节点查找它们 资源。
我不明白,我理解你的意思,但我认为你有一个误解。
但它如何适用于地点或团体?
Hiera插值 插入Puppet变量的值和/或某些插值函数的结果。 certname , location ,和 group 在这方面是一样的,但是 certname 变量由Puppet自动提供,基于代理提供的用于标识自身的证书。 (这与节点块和节点终端完全正交,尽管它们也是如此, 使用 证书名称。)
certname
location
group
我需要吗? 创造一个自定义事实?
您可以这样做,因为代理提供的所有事实都可以作为顶级Puppet变量使用。由Hiera插值的变量不需要从事实中导出,但是需要在执行需要它们的Hiera查找之前定义它们,并且在开始评估站点清单之前,事实可供目录构建器使用。
如果是,我怎么能为节点分配那个事实。
这完全是一个问题 你如何实现这一事实 。
我可以在site.pp中的节点定义中执行此操作[?]
你不能设置 事实 在节点块中,但您可以设置节点范围和顶级范围 变量 ,然后这些应该可供Hiera进行插值。对于节点范围,语法如下所示:
node example.com{ $location = "new york" $group = "mailer" # ... }
对于顶级范围,它只是在节点块之外。或者,您可以通过a定义顶级变量(以及其他内容) 外部节点分类器 。