我在文档中找不到有关在同一个键下有多个包含项的任何内容,但是当我尝试时,我最终只得到了根键下的最后一个包含键。
例如:
/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 的建议改正了不适当的冒号。