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

Выберите файл Salt top при использовании saltenv с бэкэндом gitfs

Задний план

У меня есть экземпляр Salt, настроенный с gitfs бэкэнд. По умолчанию здесь указывается мастер филиал, чтобы быть base Окружающая среда. Итак, когда я выполняю:

salt <minion-id> state.apply

в top.sls файл выполняется по умолчанию.

Ситуация

Я хотел бы знать, есть ли способ указать / выполнить это top.sls файл, также указав saltenv (для выбора ветки):

salt <minion-id> state.apply saltenv=<branch>

В настоящее время это возвращает:

minion-id:
-----------
ID: states
Function: no.None
Result: False
Comment: No Top file or external nodes data matches found.
Changes:

Я знаю, что могу определить несколько сред в top.sls файл, но значение, передаваемое в saltenv несколько динамичный. Он всегда будет содержать значение feature/, но это единственная постоянная часть. Я попытался добавить среду с подстановочными знаками в файл top.sls, но это вызвало ошибки компиляции. Я знаю, что у меня может быть двухэтапный процесс, в котором функциональные ветки объединяются с ветвью разработки, которая, в свою очередь, объединяется с главной, но я бы хотел избежать создания ветки разработки только для решения этой проблемы.

Вы можете установить динамическую связь между средами / ветвями, доступными для GitFS Salt, и верхним файлом с помощью Jinja.

В твоем top.sls файл, вы можете иметь запись верхнего уровня:

{{ saltenv }}:
  '*':
    - foo.bar
   ...

{{ saltenv }} будет заменен текущим контекстом среды. Обычно я определяю это во время выполнения через:

some-minion $ sudo salt-call saltutil.sync_modules saltenv=blah
some-minion $ sudo salt-call state.apply saltenv=blah