SaltStack 支柱包含相同的键

SaltStack 支柱包含相同的键

我在文档中找不到有关在同一个键下有多个包含项的任何内容,但是当我尝试时,我最终只得到了根键下的最后一个包含键。

例如:

/srv/pillar/top.sls

base:
  '*':
    - ports

猫/srv/pillar/ports/init.sls

include:
  - ports.frontend:
      key: ports
  - ports.backend:
      key: ports

/srv/pillar/ports/backend.sls

service1: 10000
service2: 10001

/srv/pillar/ports/frontend.sls

web1: 8000
web2: 8001

没有其他键的结果salt '*' pillar.items如下所示:

ports:
    ----------
    service1:
        10000
    service2:
        10001

期望结果如下:

ports:
    web1:
        8000
    web2:
        8001
    service1:
        10000
    service2:
        10001

答案1

这是我发现的适合我的情况的方案。

归根结底,中间文件 K 包含所有子文件 S 1...n,因此当我包含文件 K 时,我指定其key参数,其中包含指定键下的所有子文件。

/srv/pillar/ports/backend.sls

service1: 10000
service2: 10001

/srv/pillar/ports/frontend.sls

web1: 8000
web2: 8001

/srv/pillar/端口/all_ports.sls

include:
  - ports.frontend
  - ports.backend

/srv/pillar/ports/init.sls

include:
  - ports.all_ports:
      key: ports

/srv/pillar/top.sls

base:
  '*':
    - ports

这将导致支柱键ports看起来像这样:

ports:
  web1: 8000
  web2: 8001
  service1: 10000
  service2: 10001

更新

我按照 marco 的建议改正了不适当的冒号。

相关内容