在puppet中为hiera嵌套YAML



我正在为我们公司设计一个木偶架构。我非常喜欢用层次和YAML文件对节点进行分类的想法。但是,我真的希望能够应用不基于事实的YAML文件,或者将YAML文件导入到另一个YAML文件中。

例如NodeA.yaml

---
include webserver.yaml
include public.yaml
classes:
etc. . . 

这将允许我尽可能重用我的代码。这样,当我改变我的web服务器配置时,我只需要在一个文件中做,而不是每个节点的YAML文件。

我也愿意考虑其他的解决方案。

  • YAML不支持导入或包含
  • (不推荐)您可以使用来自stdlib模块的loadyaml来实现所需的功能。查看loadyaml函数使用示例
  • 只要设计合适的hiera层次结构,就可以很容易地实现预期的功能。我不明白你为什么不想用facter facts ?例如:在每个节点上定义自定义因子fact location。接下来定义一个层次结构:

    :hierarchy:
      - "%{::location}"/"%{::fqdn}"
      - "%{::location}"/common
      - common 
    

    接下来,在文件location_1/node1.yaml中,仅为该node1定义特定的数据。在文件location_1/common.yaml中定义location_1所有节点的公共数据。在common.yaml中,您定义了所有节点的公共数据。如果某些数据对于所有节点都是通用的,那么您只需在common.yaml中定义一次即可。不必在每个节点的yaml文件中冗余地定义

相关内容

  • 没有找到相关文章

最新更新