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

Есть ли способ в Salt использовать другой файл конфигурации для одной команды?

Я работаю в среде, где изменения в солевых состояниях и столбах должны проверяться с помощью запроса на слияние.

В тот момент, когда нам нужно протестировать наши изменения перед их отправкой, мы регистрируемся в мастере соли, проверяем ветку, над которой мы работаем после изменения наших коллег, и выполняем наши тесты.

Проблема с этим подходом заключается в том, что он требует, чтобы один пользователь в основном блокировал соль мастера на время, пока ему нужно выполнять тест.

Отсюда мой вопрос: есть ли способ указать конфигурацию мастера соли и / или корень состояния / столба для одной команды соли?

Если вы используете gitfs, все ветки являются средами в соли. Итак, вы могли бы сделать что-то вроде

salt-call state.highstate saltenv=testingBranch pillarenv=testingBranch test=True

Вы смешиваете и сопоставляете их, поэтому, если вы просто тестируете изменения столбов, вы можете не использовать saltenv.

Существует опция, которая позволяет указать главный файл конфигурации соли для одной команды, но содержимое этого файла конфигурации не может переопределить корни столбов / состояний.

Проведя небольшое исследование: есть --config-dir вариант в соли, НО он не будет переопределять столб и устанавливает корни из-за асинхронной архитектуры Salt (обсуждается на эта проблема соли):

Это было бы полезно, но это сложно из-за соляной архитектуры. По сути, солт-кли посылает команду миньонам. Затем миньоны запускают эту команду, обращаясь к мастеру за любыми файлами, которые им нужны. Мастер не сопоставляет запросы от миньонов с запущенными заданиями CLI, и поэтому не имеет возможности изменять file_roots или аналогичные файлы на лету таким образом. Их необходимо изменить в основной среде выполнения.

Правильный способ решить эту проблему - использовать gitfs и соляная среда, как объяснено в ответе Майка.