木偶中hiera的嵌套YAML
我正在为我们公司设计木偶建筑。我非常喜欢用hiera和YAML文件对节点进行分类的想法。但是,我确实希望能够应用不基于事实的YAML文件,或者将YAML文件导入到另一个YAML文件中 例如NodeA.yaml木偶中hiera的嵌套YAML,yaml,puppet,hiera,Yaml,Puppet,Hiera,我正在为我们公司设计木偶建筑。我非常喜欢用hiera和YAML文件对节点进行分类的想法。但是,我确实希望能够应用不基于事实的YAML文件,或者将YAML文件导入到另一个YAML文件中 例如NodeA.yaml --- include webserver.yaml include public.yaml classes: etc. . . 这将允许我尽可能多地重用代码。这样,当我更改web服务器配置时,我只需在一个文件中进行更改,而不是在每个节点的YAML文件中进行更改 我也愿意接受其他解决
---
include webserver.yaml
include public.yaml
classes:
etc. . .
这将允许我尽可能多地重用代码。这样,当我更改web服务器配置时,我只需在一个文件中进行更改,而不是在每个节点的YAML文件中进行更改
我也愿意接受其他解决方案。- YAML不支持导入或包含
- (不推荐)您可以使用from模块来实现所需的功能。使用
功能检查此项loadyaml
- 只需设计适当的
层次结构,您就可以轻松实现预期的功能。我不明白您为什么不想使用事实真相?e、 g:在每个节点上定义自定义事实hiera
位置
。接下来定义层次结构:
接下来,在文件:hierarchy: - "%{::location}"/"%{::fqdn}" - "%{::location}"/common - common
中,您将仅为该节点1定义特定的数据。在文件location_1/node1.yaml
中,为location\u 1/common.yaml
中的所有节点定义公共数据。在location\u 1
中定义所有节点的公共数据。 如果某些数据对于所有节点都是公共的,则只需在common.yaml
中定义一次即可。您不必在每个节点的yaml文件中冗余地定义它common.yaml