我找不到关于在同一个密钥下有多个包含文件的任何内容,但是当我尝试它时,我最终只包含了根密钥下的最后一个包含密钥。
例如:
/srv/pillar/top.sls
base: '*': - ports
cat /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
这是我发现对我有用的scheme。
归属文件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/ports/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
UPDATE
我纠正了不合适的冒号,正如marco所build议的那样。