
我在文檔中找不到有關同一密鑰下有多個包含項目的任何內容,但是當我嘗試時,我最終只得到根密鑰下的最後一個包含密鑰。
例如:
/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
這是我發現對我有用的方案。
歸結為擁有包含所有子檔案 S 1...n的中間檔案 K ,因此當我包含檔案 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
更新
我按照 marco 的建議糾正了不適當的冒號。