我可以根据puppet中hiera.yaml文件中的名称选择层次结构吗?

我可以根据puppet中hiera.yaml文件中的名称选择层次结构吗?,puppet,hierarchy,hiera,Puppet,Hierarchy,Hiera,我使用的是hiera5,我想根据组名读取其中一个组的层次结构。 例如,目前我有: version: 5 defaults: datadir: "/" data_hash: yaml_data hierarchy: - name: "ABC" paths: - "env/env-data1.yaml" - "env/env-data2.yaml" - "env/env-data3.yaml" 我想添加多个层次结构,如下所示: hierarc

我使用的是hiera5,我想根据组名读取其中一个组的层次结构。 例如,目前我有:

version: 5
defaults:
  datadir: "/"
  data_hash: yaml_data
hierarchy:
  - name: "ABC"
    paths:
      - "env/env-data1.yaml"
      - "env/env-data2.yaml"
      - "env/env-data3.yaml"
我想添加多个层次结构,如下所示:

hierarchy:
  - name: "ABC"
    paths:
      - "env/env-data1.yaml"
      - "env/env-data2.yaml"
      - "env/env-data3.yaml"
  - name: "DEF"
    paths:
      - "env/env-data4.yaml"
      - "env/env-data5.yaml"
      - "env/env-data6.yaml"
  - name: "GHI"
    paths:
      - "env/env-data7.yaml"
      - "env/env-data8.yaml"
      - "env/env-data9.yaml"
一次只从其中一个组读取文件,比如说“ABC”

在调用puppet脚本时,有没有一种方法可以将层次结构名称作为参数传递

其他信息: 我正在运行jenkins的shell脚本,它触发了木偶脚本

puppet apply --hiera_config=${WORKSPACE}/hiera.yaml ${WORKSPACE}/puppet-script.pp
提前谢谢

我想像这样添加多个层次结构:[……]

语法很好,但它不描述多个层次结构。它描述了一个多级层次结构,这实际上是通常的情况。有多个层次是它的层次性的原因——这是Hiera相对于Puppet拥有的其他外部数据机制的显著特征

一次只从其中一个组读取文件,比如说“ABC”

不,没有发生。希拉不是那样工作的

在调用puppet脚本时,有没有一种方法可以将层次结构名称作为参数传递


不可以,但是您可以指定不同的hiera.yaml配置文件,正如您已经演示的那样。如果您希望不同的运行具有不同的层次结构,请在其自己的完整配置文件中定义每个层次结构,并为每次使用选择相应的配置文件。

感谢John的回复。拥有多个hiera.yaml是我目前的做法。