Назад | Перейти на главную страницу

Столб 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

Вот схема, которую я нашел, работает для меня.

Это сводится к наличию промежуточного файла K, который включает все субфайлы S1 ... п, поэтому, когда я включаю файл 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

ОБНОВИТЬ

Я исправил неподходящие двоеточия, как предложил Марко.