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

這是我發現對我有用的方案。

歸結為擁有包含所有子檔案 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 的建議糾正了不適當的冒號。

相關內容