繁体   English   中英

嵌套的YAML用于木偶中的hiera

[英]Nested YAML for hiera in puppet

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

例如NodeA.yaml

---
include webserver.yaml
include public.yaml

classes:
etc. . . 

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

我也对其他解决方案持开放态度。

  • YAML不支持导入或包含
  • (不推荐)您可以使用stdlib模块中的loadyaml来实现所需的功能。 检查使用loadyaml函数的此示例
  • 您可以轻松地只是通过设计适当的实现预期的功能hiera层次。 我不明白为什么你不想使用其他facter facts 例如:在每个节点上定义自定义因子事实location 接下来定义一个层次结构:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM