Задачи и политики
Задача — это сценарий, управляющий применением состояния (SLS) на одном или нескольких клиентах.
Для создания задач в SALT.BOX используются шаблоны конфигураций.
Подробную информацию о подключении источников, управлении содержимым и создании шаблонов см. раздел онлайн-документации: Шаблоны конфигураций
Политика — режим выполнения задачи, предназначенный не для немедленного выполнения действий, а для задания правил и ограничений, в рамках созданных и запущенных задач.
При создании политики:
- Задача описывается как правило (политика), а не как разовое действие;
- Пользователь не выбирает конкретных клиентов напрямую, а работает с разрешёнными коллекциями.
Создание задачи
В процессе создания задачи пользователь SALT.BOX выполняет следующие шаги:
- Выбирает адресатов задачи.
- Выбирает шаблон задачи и вводит общие параметры задачи.
- Вводит параметры, определённые в шаблоне задачи.
- Просматривает параметры на вкладке Обзор и подтверждает создание задачи.
- Запускает и контролирует выполнение задачи со страницы Карточка задачи.
Выбор адресатов задачи
Создание задач в SALT.BOX осуществляется со страницы клиентов (переход на эту страницу осуществляется через пункт Клиенты в главном меню).
В SALT.BOX действует алгоритм, по которому при создании задачи определяются целевые клиенты (т.е. клиенты, на которых будет выполняться задача):
-
Все клиенты текущей активной (выбранной пользователем из числа доступных ему) коллекции
(этот вариант применяется по умолчанию).
-
Все клиенты, отобранные фильтром, применённым к исходной коллекции.
-
клиенты, выбранные пользователем из результата применения фильтра к исходной коллекции.
На Рис. 1 показан пример, в котором пользователем из коллекции root collection выбрана группа клиентов (отмечены пользователем флажками).
![]() |
|---|
Нажмите кнопку Создать задачу Рис. 1.
Выбор шаблона и ввод общих параметров задачи
В открывшемся диалоговом окне Выберите шаблон задачи (которое позволяет найти и выбрать необходимый сценарий автоматизации) Рис. 2 из блоков с раскрывающимися списками выберите нужный шаблон (например Установка и удаление программного обеспечения) Рис. 2 [1].
![]() |
|---|
Если список шаблонов пуст, синхронизируйте шаблоны, как указано в разделе Шаблоны конфигураций.
Для быстрого перехода на страницу Шаблоны конфигураций предусмотрена кнопка Шаблоны конфигураций Рис. 2 [2].
В результате откроется диалоговое окно Настройка задачи Рис. 3.
Ввод параметров, определённых в шаблоне задачи
Состав параметров, определённых в шаблоне, зависит от соответствующего ему файла SLS.
На Рис. 3 показан пример набора параметров, определённых в выбранном пользователем шаблоне Установка и удаление программного обеспечения (Base - Software - Packages).
На вкладке Настройки в поле Package введите название пакета, который хранится на сервере или в репозиториях ОС клиентов Рис. 3.
Если необходимо обновить уже установленный пакет на ОС клиента (клиентов) в поле Update the package repository database (optional) следует выбрать параметр True (по умолчанию указано False).
Если необходимо сохранить текущие параметры и значения по умолчанию для шаблона, выберите соответствующий чек-бокс Рис. 3.
![]() |
|---|
В поле аргументов вводится только название пакета. Например: Package: htop Рис. 3.
Обязательные поля отмечены знаком *
При массовом использовании задач есть функция Расширенные настройки, которая позволяет распределять нагрузку при выполнении множества задач на определённом промежутке времени.
Для этого на вкладке Настройки необходимо активировать кнопку Расширенные настройки Рис. 4 [1].
В таблице 1 приведено описание общих параметров задачи.
![]() |
|---|
Таблица 1. Перечень общих параметров задачи
| Параметр | Описание |
|---|---|
| Размер пакета | Размер «окна» выполнения (максимальное количество одновременно выполняемых задач). Значение 0 — без ограничений |
| Параллельные задачи | Максимальное количество одновременно выполняемых задач |
| Максимум попыток | Количество попыток выполнения задачи в случае неудачного завершения |
| Задержка повтора (с) | Задержка в секундах перед повторной попыткой |
Нажать кнопку Далее к обзору Рис. 4 [2].
В результате в диалоговом окне Настройка задачи откроется вкладка Обзор Рис. 5.
![]() |
|---|
Вкладка Обзор Рис. 5 предназначена для предварительного просмотра и проверки параметров задачи перед её запуском.
Вкладка Обзор позволяет пользователю:
- увидеть сводную информацию по создаваемой задаче;
- проверить корректность выбранных параметров;
- убедиться, что задача будет выполнена на указанных клиентах и с заданными настройками;
- избежать ошибок перед запуском задачи.
Подтверждение создания задачи
После ввода параметров нажмите кнопку Создать задачу Рис. 5.
Будет создана задача, откроется страница карточки задачи Рис. 6.
Первоначальный статус новой задачи — “created” (Создана).
В случае, если запускаемая задача применяется к большому множеству клиентов (например, к большой коллекции), будет выведено окно уведомления для подтверждения запуска задачи.
Карточка задачи
![]() |
|---|
Карточка задачи состоит из следующих основных блоков и элементов интерфейса:
-
блок с кнопками управления, кнопкой Параметры задачи, кнопкой Открыть команды и атрибутами задачи Рис. 6 [1]
Таблица 2. Перечень атрибутов задачиперечень атрибутов задачи приведён в таблице 2
Атрибут Описание Тип Тип задачи Статус Статус задачи Создана Время создания задачи Пользователь Имя пользователя, создавший задачу -
блок выполнения задачи Рис. 6 [2]
- вкладка
Всена вкладке отображается список всех адресатов (клиентов, на которые планируется или уже запущена задача)
- вкладка
Ожидаетна вкладке отображается список адресатов (клиентов), находящихся в режиме ожидания
- вкладка
В процессена вкладке отображается список адресатов (клиентов), находящихся в процессе выполнения
- вкладка
С ошибкойна вкладке отображается список адресатов (клиентов) с ошибками выполнения
- вкладка
Успешнона вкладке отображается список адресатов (клиентов) с успешно выполненными задачами
- вкладка
-
таблица Карточки задачи Рис. 6 [3]
Таблица 3. Перечень полей таблицы Карточки задачиперечень полей таблицы Карточки задачи приведён в таблице 3
Имя поля Значение ID клиента Идентификатор задачи Контроллер Наименование контроллера Статус Статус клиента Количество запусков Количество проделанных запусков задачи Запущена Период запуска задачи Завершена Период завершения задачи
Для просмотра списка всех задач, выполненных на клиентах текущей отображаемой коллекции, выберите вкладку Задачи, расположенную в верхней левой части страницы коллекции клиентов.
Вид таблицы задач показан на Рис. 7.
![]() |
|---|
Операции запуска и перезапуска задачи, статусы выполнения задачи подробно рассмотрены в разделе Выполнение задач и политик на примере политики.
Создание политики
В процессе создания политики пользователь SALT.BOX выполняет следующие шаги:
- Выбирает коллекции клиентов.
- Выбирает шаблон политики и вводит общие параметры политики.
- Вводит параметры, определённые в шаблоне политики.
- Просматривает параметры на вкладке Обзор и подтверждает создание политики.
- Запускает и контролирует выполнение политики со страницы Карточка задачи (политики).
Выбор коллекции клиентов
Создание политики в SALT.BOX осуществляется со страницы клиентов.
В главном меню системы выберите пункт Клиенты Рис. 8.
На появившейся выдвижной панели Рис. 9 будут показаны все доступные коллекции.
Более подробную информацию о том, как создаются коллекции клиентов см. в разделе Клиенты.
Выберите необходимую коллекцию (например,root collection), для которой будет создана политика.
В рабочей области окна браузера будет выведен список клиентов выбранной коллекции Рис. 10.
![]() |
|---|
Выбор шаблона и ввод общих параметров политики
На вкладке Список нажмите кнопку Создать политику Рис. 10.
В открывшемся диалоговом окне Выберите шаблон политики Рис. 11 из списка выберите шаблон политики (например, Test - Return a random result) Рис. 11 [1].
![]() |
|---|
Если список шаблонов пуст, синхронизируйте шаблоны, как указано в разделе Шаблоны конфигураций.
Для быстрого перехода на страницу Шаблоны конфигураций предусмотрена кнопка Шаблоны конфигураций Рис. 11 [2].
В результате откроется диалоговое окно Настройка политики Рис. 12.
Уведомление Политика будет применена ко всем клиентам коллекции "Root collection" Рис. 12 информирует пользователя о том, что создаваемая или редактируемая политика имеет глобальную область действия и будет применена ко всем клиентам, входящим в указанную коллекцию.
Ввод параметров, определённых в шаблоне политики
Состав параметров, определённых в шаблоне, зависит от соответствующего ему файла SLS.
Настройка параметров, определённых в шаблоне политике, выполняется аналогично настройке параметров задач.
Чек-бокс Сохранить как значения по умолчанию для шаблона определяет, будут ли текущие настройки политики сохранены в качестве значений по умолчанию для используемого шаблона.
![]() |
|---|
Обязательные поля отмечены знаком *
При массовом использовании политик могут использоваться Расширенные настройки, которые позволяют распределять нагрузку при выполнении множества задач.
Для этого на вкладке Настройки необходимо активировать переключатель Расширенные настройки Рис. 13 [1].
![]() |
|---|
В таблице 4 приведено описание общих параметров политики.
Таблица 4. Перечень общих параметров политики| Параметр | Описание |
|---|---|
| Размер пакета | Размер «окна» выполнения (максимальное количество одновременно выполняемых задач). Значение 0 — без ограничений |
| Параллельные задачи | Максимальное количество одновременно выполняемых задач |
| Максимум попыток | Количество попыток выполнения задачи в случае неудачного завершения |
| Задержка повтора (с) | Задержка в секундах перед повторной попыткой |
Нажмите кнопку Далее к обзору Рис. 13 [2].
В результате в диалоговом окне Настройка политики откроется вкладка Обзор Рис. 14 [1].
![]() |
|---|
Вкладка Обзор Рис. 14 предназначена для предварительного просмотра и проверки параметров политики перед её запуском.
Вкладка Обзор позволяет пользователю:
- увидеть сводную информацию по создаваемой политике;
- проверить корректность выбранных параметров;
- убедиться, что политика будет выполнена на указанных клиентах и с заданными настройками;
- избежать ошибок перед запуском политики.
Подтверждение создания политики
Нажмите кнопку Создать политику Рис. 14 [2].
В случае, если запускаемая политика применяется к большому множеству клиентов (например, к большой коллекции), будет выведено окно уведомления для подтверждения запуска политики Рис. 15.
![]() |
|---|
Будет создана политика, откроется карточка политики Рис. 16.
![]() |
|---|
Первоначальный статус новой политики — “created” (Создана).
Карточка политики
Карточка политики состоит из следующих основных блоков и элементов интерфейса:
-
блок с кнопками управления, кнопкой Параметры политики, кнопкой Открыть команды и атрибутами политики Рис. 16 [1]
Таблица 5. Перечень атрибутов политикиперечень атрибутов политики приведён в таблице 5
Атрибут Описание Тип Тип политики Статус Статус политики Создана Время создания политики Пользователь Имя пользователя, создавший политику -
блок выполнения политики Рис. 16 [2]
- вкладка
Всена вкладке отображается список всех адресатов (клиентов, на которые планируется или уже запущена политика)
- вкладка
Ожидаетна вкладке отображается список адресатов (клиентов), находящихся в режиме ожидания
- вкладка
В процессена вкладке отображается список адресатов (клиентов), находящихся в процессе выполнения
- вкладка
С ошибкойна вкладке отображается список адресатов (клиентов) с ошибками выполнения
- вкладка
Успешнона вкладке отображается список адресатов (клиентов) с успешно выполненными политиками
- вкладка
-
таблица Карточки политики Рис. 16 [3]
Таблица 6. Перечень полей таблицы Карточки политикиперечень полей таблицы Карточки политики приведён в таблице 6
Имя поля Значение ID клиента Идентификатор политики Контроллер Наименование контроллера Статус Статус клиента Количество запусков Количество проделанных запусков политик Запущена Период запуска политики Завершена Период завершения политики
Выполнение задач и политик
В данном разделе рассмотрены операции запуска и перезапуска политики, статусы выполнения политики.
Аналогичные операции действуют для задач, за исключением неограниченного периода выполнения.
Для того чтобы запустить политику, в блоке с кнопками управления Рис. 16 [1], нажмите кнопку Запустить.
Будет запущена политика со сменой состояния атрибута клиентов Статус Рис. 17 [1] на Выполняется.
При этом в таблице Карточка политики Рис. 17 [3] в строке клиентов в поле Статус атрибут поочерёдно изменится с Ожидает на В процессе Рис. 17 [2].
![]() |
|---|
Далее при завершении выполнения политики на клиентах атрибут Статус изменит состояние на Успешно Рис. 19 [1] или С ошибкой Рис. 18.
В случае завершения выполнения политики на клиентах с состоянием С ошибкой (в атрибуте Статус) доступны следующие элементы перезапуска политики:
-
Кнопка перезапуска в блоке с кнопками управления (глобальный перезапуск) Рис. 18 [1]
позволяет инициировать полный перезапуск выполнения политики для всех клиентов, которые входят в область её действия
-
Кнопка перезапуска в строке конкретного клиента (локальный перезапуск) Рис. 18 [2]
позволяет перезапустить политику только для выбранного клиента, не затрагивая остальные узлы
![]() |
|---|
Политика перейдёт в режим Ожидание клиентов Рис. 19 [2].
![]() |
|---|
Для просмотра результатов выполнения политики нажмите на строку нужного клиента.
Справа откроется карточка клиента со вкладкой Результат запуска.
В ней отображаются выполненные тестовые модули в формате JSON Рис. 20, которые используются для демонстрации возможностей системы и проверки связи с клиентами.
![]() |
|---|
Модуль Wait a bit (test.sleep): создает искусственную задержку выполнения.
Его назначение: симуляция длительных операций, проверка обработки таймаутов и корректности отображения статуса Выполняется в интерфейсе.
Модуль Show result (test.true): подтверждает доступность клиента.
Его назначение: быстрая диагностика сетевой связности и проверка готовности клиента к выполнению команд.
JSON-представление результата позволяет увидеть:
- какие состояния были применены,
- какие изменения внесены,
- какие операции были выполнены — список операций (например, установка пакетов, изменение конфигурационных файлов),
- статус каждой операции —
success,failed,changedи пр., - ошибки и сообщения — подробные сообщения об ошибках конфигурации, синтаксиса SLS, недоступности клиента и т.п.
Страница Результат запуска необходима для:
- проверки успешности применения политики,
- диагностики ошибок,
- анализа, какие изменения были внесены
Для просмотра списка всех политик, выполненных на клиентах текущей отображаемой коллекции, выберите вкладку Политики, расположенную в верхней левой части страницы коллекции клиентов.
Вид таблицы политик показан на Рис. 21.
![]() |
|---|
Диаграммы состояний задач и политик
Граф выполнения задачи
На Рис. 22 показан граф выполнения задачи.
Условия переходов между статусами задачи, выполняемых автоматически либо при определённых действиях пользователя, приведены в таблице 7.
Таблица 7. Таблица переходов графа выполнения задачи
| Метка дуги | Условие перехода |
|---|---|
| 1 | Пользователь нажал кнопку Run |
| 2 | Пользователь нажал кнопку Stop |
| 3 | Система выполнила все необходимые операции для остановки |
| 4 | Пользователь нажал кнопку Run |
| 5 | Задача выполнена успешно |
Граф выполнения политики
На Рис. 23 показан граф выполнения политики.
Условия переходов между статусами политики, выполняемых автоматически либо при определённых действиях пользователя, приведены в таблице 8.
Таблица 8. Таблица переходов графа выполнения политики
| Метка дуги | Условие перехода |
|---|---|
| 1 | Пользователь нажал кнопку Run |
| 2 | Пользователь нажал кнопку Stop |
| 3 | Система выполнила все необходимые операции для остановки |
| 4 | Пользователь нажал кнопку Run |
| 5 | Политика переходит в режим ожидания клиента |
| 6 | После появления релевантного клиента выполнение политики возобновляется |
Граф состояний клиента в составе задачи
Под клиентом в составе задачи подразумевается объект SALT.BOX, содержащий объект клиента SALT.BOX, попавший в адресаты задачи, и хранящий статус клиента.
На каждом отдельном клиенте агент SALT.BOX формирует собственный ответ Job Return с результатом выполнения SaltStak Job.
Результирующее состояние клиента в составе задачи зависит, таким образом, от того, выполнены ли успешно все команды на отдельных клиентах.
На Рис. 24 показан граф состояний клиента в составе задачи.
Условия переходов между состояниями клиента приведены в таблице 9.
Таблица 9. Таблица переходов графа состояний клиента в составе задачи
| Метка дуги | Условие перехода |
|---|---|
| 1 | Получено подтверждение от salt-master о создании SaltStack Job.Ожидаются ответы Job Return |
| 2 | Получены все Job Return, все успешны |
| 3 | Получены все Job Return, есть ответы с ошибками |
Граф выполнения команды на отдельном клиенте
На Рис. 25 показан граф выполнения команды при её выполнении на отдельном клиенте.
Условия переходов между статусами команды приведены в таблице 10.
Таблица 10. Таблица переходов графа выполнения команды на отдельном клиенте
| Метка дуги | Условие перехода |
|---|---|
| 1 | От salt-master получено подтверждение о создании SaltStack Job, клиент попал в нацеливание.Ожидается ответ Job Return по клиенту |
| 2 | Получен успешный Job Return по клиенту |
| 3 | Получен отрицательный Job Return по клиенту |
| 4 | От salt-master получено подтверждение о создании SaltStack Job, но клиент по какой-то причине не попал в нацеливание |
Диаграмма выполнения задачи
Таблица 11. Переходы (взаимодействия) на диаграмме выполнения задачи
| № взаимодействия | Описание |
|---|---|
| 1 | Если множество клиентов-адресатов задачи задано с помощью созданных коллекции клиентов, и в то же время указан хотя бы один из параметров: Batch size или Parallel jobs — максимальное количество команд, которые могут выполняться одновременно, то перед созданием команд будет выполнено преобразование цели в набор списков клиентов, по Batch size клиентов в каждом. |
| 2 | Создание команд SALT.BOX. Сначала будет создано Parallel jobs команд, последующие команды будут создаваться по мере выполнения созданных ранее команд. |
| 3 | Каждая созданная команда SALT.BOX выполняет вызов службы salt-master, которая генерирует событие типа job: salt/job/<JID>/new. |
| 4 | Созданные события salt/job/<JID>/new публикуется на встроенной шине ZeroMQ. |
| 5, 6, 7, 8 | На диаграмме меткой "Minions of some Job #X" обозначена группа клиентов, являющихся целями одной (взятой произвольно) команды (Job #X), созданной на шаге №2. Аналогично, меткой "Minions of some Job #Y" обозначена группа клиентов-целей некоей другой команды (Job #Y). Обе группы содержат Batch size клиентов.Меткой "SaltStak job delivered" на диаграмме обозначены моменты получения клиентами команды, опубликованной на шине ZeroMQ. Моменты получения команды асинхронны вследствие разного времени реакции клиентов. На диаграмме в качестве примера показано, что клиенты группы "Minions of some Job #Y" получают команды позже клиентов группы "Minions of some Job #X", и существенно позже публикуют ответы (не показаны в пределах диаграммы). |
| 9, 10 | После выполнения команды каждый клиент отправляет на шину ZeroMQ ответ ("Job Return") |
| 11 | Ответ последнего клиента группы "Minions of some Job #X" (т.е. ответ, опубликованный на шине последним). |
| 12, 13 | Обратная цепочка передачи ответов клиентов от SaltStack к SALT.BOX |
| 14 | Обработчик событий задачи получает сигнал о том, что все клиенты команды Job #X отправили ответы (либо не ответили по таймауту). |
| 15 | Сигнал об окончании выполнения команды Job #X инициирует создание очередной команды со следующей группой из Batch size клиентов-адресатов.Таким образом обеспечивается одновременное выполнение не более Parallel jobs команд. |
| 16 | Вновь созданная команда SALT.BOX выполняет вызов службы salt-master, которая генерирует событие типа job: salt/job/<JID>/new. |
| 17 | Событие salt/job/<JID>/new публикуется на встроенной шине ZeroMQ. |


















