Приоритет выполнения формулы
Приоритет выполнения формул непосредственно влияет на порядок их записи в файл top.sls, который используется серверами управления Salt для определения набора формул, подлежащих применению на устройствах.
Назначение приоритета
Приоритет позволяет администратору управлять очередностью применения формул на устройствах при выполнении highstate.
Задание и изменение приоритета формулы доступно в разделе «Загрузка формул Saltstack» веб-интерфейса «Кабинет администратора»:
-
при первичной загрузке формулы приоритет указывается в форме загрузки;
-
при редактировании существующей формулы приоритет можно изменить в карточке формулы.
| Подробнее о категориях приоритета и ограничениях см. в разделе «Управление приоритетом выполнения формулы». |
Формирование файла top.sls
Файл top.sls формируется автоматически при активации или деактивации назначения конфигурации через веб-интерфейс или API. Данный процесс применяется только к конфигурациям, не имеющим кастомного (индивидуального) расписания.
Алгоритм формирования:
-
Система запрашивает из базы данных все активные конфигурации без параметра
custom_schedule. -
Список применения формул сортируется по порядку применения (приоритету) формул в рамках текущего окружения Salt (по умолчанию
base). -
Генерируется YAML-файл top.sls в формате:
base: collectionConfig_id:true: - match: pillar - formula_name -
Сформированный файл загружается в S3-совместимое хранилище по пути base/top.sls.
Конфигурации с индивидуальным расписанием (cron, daily, weekly) не включаются в top.sls. Они обрабатываются отдельно через Salt-пиллары, в которых задаются соответствующие планировщики.
Применение на устройстве
Сервер управления Salt получает файл top.sls из S3-совместимого хранилища. Формулы на устройстве применяются в порядке их декларации в top.sls.
Порядок выполнения отдельных состояний (state) внутри формулы определяется правилами компиляции Salt. На поведение этого процесса влияет параметр state_auto_order в конфигурации сервера управления Salt (/etc/salt/master):
-
если
state_auto_order: True(значение по умолчанию), Salt автоматически переупорядочивает состояния на основе их зависимостей; -
если
state_auto_order: False, атрибутorderв состояниях не заполняется автоматически и не используется для сортировки; в этом случае порядок выполнения состояний является лексикографическим (алфавитным) по имени состояния.
| Подробнее о правилах упорядочивания см. в документации Salt: "Understanding State Compiler Ordering". |
Обновлено: