Перейти к основному содержимому
Версия: 0.3.0

Задачи и политики

Задача — это сценарий, управляющий применением состояния (SLS) на одном или нескольких клиентах.
Для создания задач в SALT.BOX используются шаблоны конфигураций.

к сведению

Подробную информацию о подключении источников, управлении содержимым и создании шаблонов см. раздел онлайн-документации: Шаблоны конфигураций

Политика — режим выполнения задачи, предназначенный не для немедленного выполнения действий, а для задания правил и ограничений, в рамках созданных и запущенных задач.
При создании политики:

  • Задача описывается как правило (политика), а не как разовое действие;
  • Пользователь не выбирает конкретных клиентов напрямую, а работает с разрешёнными коллекциями.

Создание задачи

В процессе создания задачи пользователь SALT.BOX выполняет следующие шаги:

  1. Выбирает адресатов задачи.
  2. Выбирает шаблон задачи и вводит общие параметры задачи.
  3. Вводит параметры, определённые в шаблоне задачи.
  4. Просматривает параметры на вкладке Обзор и подтверждает создание задачи.
  5. Запускает и контролирует выполнение задачи со страницы Карточка задачи.

Выбор адресатов задачи

Создание задач в SALT.BOX осуществляется со страницы клиентов (переход на эту страницу осуществляется через пункт Клиенты в главном меню).

В SALT.BOX действует алгоритм, по которому при создании задачи определяются целевые клиенты (т.е. клиенты, на которых будет выполняться задача):

  1. Все клиенты текущей активной (выбранной пользователем из числа доступных ему) коллекции

    (этот вариант применяется по умолчанию).

  2. Все клиенты, отобранные фильтром, применённым к исходной коллекции.

  3. клиенты, выбранные пользователем из результата применения фильтра к исходной коллекции.

На Рис. 1 показан пример, в котором пользователем из коллекции root collection выбрана группа клиентов (отмечены пользователем флажками).

Выбор адресатов новой задачи
Рисунок 1. Выбор адресатов новой задачи


Нажмите кнопку Создать задачу Рис. 1.

Выбор шаблона и ввод общих параметров задачи

В открывшемся диалоговом окне Выберите шаблон задачи (которое позволяет найти и выбрать необходимый сценарий автоматизации) Рис. 2 из блоков с раскрывающимися списками выберите нужный шаблон (например Установка и удаление программного обеспечения) Рис. 2 [1].

Диалоговое окно выбора шаблона задачи
Рисунок 2. Диалоговое окно выбора шаблона задачи


примечание

Если список шаблонов пуст, синхронизируйте шаблоны, как указано в разделе Шаблоны конфигураций.
Для быстрого перехода на страницу Шаблоны конфигураций предусмотрена кнопка Шаблоны конфигураций Рис. 2 [2].

В результате откроется диалоговое окно Настройка задачи Рис. 3.

Ввод параметров, определённых в шаблоне задачи

к сведению

Состав параметров, определённых в шаблоне, зависит от соответствующего ему файла SLS.
На Рис. 3 показан пример набора параметров, определённых в выбранном пользователем шаблоне Установка и удаление программного обеспечения (Base - Software - Packages).

На вкладке Настройки в поле Package введите название пакета, который хранится на сервере или в репозиториях ОС клиентов Рис. 3.
Если необходимо обновить уже установленный пакет на ОС клиента (клиентов) в поле Update the package repository database (optional) следует выбрать параметр True (по умолчанию указано False).
Если необходимо сохранить текущие параметры и значения по умолчанию для шаблона, выберите соответствующий чек-бокс Рис. 3.

Диалоговое окно настройки параметров задачи
Рисунок 3. Диалоговое окно настройки параметров задачи


к сведению

В поле аргументов вводится только название пакета. Например: Package: htop Рис. 3.

примечание

Обязательные поля отмечены знаком *

к сведению

При массовом использовании задач есть функция Расширенные настройки, которая позволяет распределять нагрузку при выполнении множества задач на определённом промежутке времени.
Для этого на вкладке Настройки необходимо активировать кнопку Расширенные настройки Рис. 4 [1].
В таблице 1 приведено описание общих параметров задачи.

Расширенные настройки параметров задачи
Рисунок 4. Расширенные настройки параметров задачи


Таблица 1. Перечень общих параметров задачи
ПараметрОписание
Размер пакетаРазмер «окна» выполнения (максимальное количество одновременно выполняемых задач).
Значение 0 — без ограничений
Параллельные задачиМаксимальное количество одновременно выполняемых задач
Максимум попытокКоличество попыток выполнения задачи в случае неудачного завершения
Задержка повтора (с)Задержка в секундах перед повторной попыткой

Нажать кнопку Далее к обзору Рис. 4 [2].

В результате в диалоговом окне Настройка задачи откроется вкладка Обзор Рис. 5.

Вкладка обзора параметров задачи
Рисунок 5. Вкладка обзора параметров задачи


к сведению

Вкладка Обзор Рис. 5 предназначена для предварительного просмотра и проверки параметров задачи перед её запуском.
Вкладка Обзор позволяет пользователю:

  • увидеть сводную информацию по создаваемой задаче;
  • проверить корректность выбранных параметров;
  • убедиться, что задача будет выполнена на указанных клиентах и с заданными настройками;
  • избежать ошибок перед запуском задачи.

Подтверждение создания задачи

После ввода параметров нажмите кнопку Создать задачу Рис. 5.
Будет создана задача, откроется страница карточки задачи Рис. 6.
Первоначальный статус новой задачи — “created” (Создана).

к сведению

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

Карточка задачи

Карточка задачи
Рисунок 6. Карточка задачи


Карточка задачи состоит из следующих основных блоков и элементов интерфейса:

  • блок с кнопками управления, кнопкой Параметры задачи, кнопкой Открыть команды и атрибутами задачи Рис. 6 [1]

    перечень атрибутов задачи приведён в таблице 2

    Таблица 2. Перечень атрибутов задачи
    АтрибутОписание
    ТипТип задачи
    СтатусСтатус задачи
    СозданаВремя создания задачи
    ПользовательИмя пользователя, создавший задачу
  • блок выполнения задачи Рис. 6 [2]

    • вкладка Все

      на вкладке отображается список всех адресатов (клиентов, на которые планируется или уже запущена задача)

    • вкладка Ожидает

      на вкладке отображается список адресатов (клиентов), находящихся в режиме ожидания

    • вкладка В процессе

      на вкладке отображается список адресатов (клиентов), находящихся в процессе выполнения

    • вкладка С ошибкой

      на вкладке отображается список адресатов (клиентов) с ошибками выполнения

    • вкладка Успешно

      на вкладке отображается список адресатов (клиентов) с успешно выполненными задачами

  • таблица Карточки задачи Рис. 6 [3]

    перечень полей таблицы Карточки задачи приведён в таблице 3

    Таблица 3. Перечень полей таблицы Карточки задачи
    Имя поляЗначение
    ID клиентаИдентификатор задачи
    КонтроллерНаименование контроллера
    СтатусСтатус клиента
    Количество запусковКоличество проделанных запусков задачи
    ЗапущенаПериод запуска задачи
    ЗавершенаПериод завершения задачи

Для просмотра списка всех задач, выполненных на клиентах текущей отображаемой коллекции, выберите вкладку Задачи, расположенную в верхней левой части страницы коллекции клиентов.
Вид таблицы задач показан на Рис. 7.

Список задач
Рисунок 7. Список задач
к сведению

Операции запуска и перезапуска задачи, статусы выполнения задачи подробно рассмотрены в разделе Выполнение задач и политик на примере политики.

Создание политики

В процессе создания политики пользователь SALT.BOX выполняет следующие шаги:

  1. Выбирает коллекции клиентов.
  2. Выбирает шаблон политики и вводит общие параметры политики.
  3. Вводит параметры, определённые в шаблоне политики.
  4. Просматривает параметры на вкладке Обзор и подтверждает создание политики.
  5. Запускает и контролирует выполнение политики со страницы Карточка задачи (политики).

Выбор коллекции клиентов

Создание политики в SALT.BOX осуществляется со страницы клиентов.

В главном меню системы выберите пункт Клиенты Рис. 8.

Выбор пункта "Клиенты" в главном меню
Рисунок 8. Выбор пункта "Клиенты" в главном меню


На появившейся выдвижной панели Рис. 9 будут показаны все доступные коллекции.

Список доступных коллекций
Рисунок 9. Список доступных коллекций


к сведению

Более подробную информацию о том, как создаются коллекции клиентов см. в разделе Клиенты.

Выберите необходимую коллекцию (например,root collection), для которой будет создана политика.
В рабочей области окна браузера будет выведен список клиентов выбранной коллекции Рис. 10.

Список клиентов выбранной коллекции
Рисунок 10. Список клиентов выбранной коллекции

Выбор шаблона и ввод общих параметров политики

На вкладке Список нажмите кнопку Создать политику Рис. 10.

В открывшемся диалоговом окне Выберите шаблон политики Рис. 11 из списка выберите шаблон политики (например, Test - Return a random result) Рис. 11 [1].

Диалоговое окно выбора шаблона политики
Рисунок 11. Диалоговое окно выбора шаблона политики


примечание

Если список шаблонов пуст, синхронизируйте шаблоны, как указано в разделе Шаблоны конфигураций.
Для быстрого перехода на страницу Шаблоны конфигураций предусмотрена кнопка Шаблоны конфигураций Рис. 11 [2].

В результате откроется диалоговое окно Настройка политики Рис. 12.

ВНИМАНИЕ

Уведомление Политика будет применена ко всем клиентам коллекции "Root collection" Рис. 12 информирует пользователя о том, что создаваемая или редактируемая политика имеет глобальную область действия и будет применена ко всем клиентам, входящим в указанную коллекцию.

Ввод параметров, определённых в шаблоне политики

к сведению

Состав параметров, определённых в шаблоне, зависит от соответствующего ему файла SLS.
Настройка параметров, определённых в шаблоне политике, выполняется аналогично настройке параметров задач.

к сведению

Чек-бокс Сохранить как значения по умолчанию для шаблона определяет, будут ли текущие настройки политики сохранены в качестве значений по умолчанию для используемого шаблона.

Диалоговое окно настройки параметров политики
Рисунок 12. Диалоговое окно настройки параметров политики


примечание

Обязательные поля отмечены знаком *

к сведению

При массовом использовании политик могут использоваться Расширенные настройки, которые позволяют распределять нагрузку при выполнении множества задач.
Для этого на вкладке Настройки необходимо активировать переключатель Расширенные настройки Рис. 13 [1].

Расширенные настройки параметров политики
Рисунок 13. Расширенные настройки параметров политики


В таблице 4 приведено описание общих параметров политики.

Таблица 4. Перечень общих параметров политики
ПараметрОписание
Размер пакетаРазмер «окна» выполнения (максимальное количество одновременно выполняемых задач).
Значение 0 — без ограничений
Параллельные задачиМаксимальное количество одновременно выполняемых задач
Максимум попытокКоличество попыток выполнения задачи в случае неудачного завершения
Задержка повтора (с)Задержка в секундах перед повторной попыткой

Нажмите кнопку Далее к обзору Рис. 13 [2].

В результате в диалоговом окне Настройка политики откроется вкладка Обзор Рис. 14 [1].

Вкладка обзора параметров политики
Рисунок 14. Вкладка обзора параметров политики


к сведению

Вкладка Обзор Рис. 14 предназначена для предварительного просмотра и проверки параметров политики перед её запуском.
Вкладка Обзор позволяет пользователю:

  • увидеть сводную информацию по создаваемой политике;
  • проверить корректность выбранных параметров;
  • убедиться, что политика будет выполнена на указанных клиентах и с заданными настройками;
  • избежать ошибок перед запуском политики.

Подтверждение создания политики

Нажмите кнопку Создать политику Рис. 14 [2].

к сведению

В случае, если запускаемая политика применяется к большому множеству клиентов (например, к большой коллекции), будет выведено окно уведомления для подтверждения запуска политики Рис. 15.

Окно уведомления с подтверждением запуска операции
Рисунок 15. Окно уведомления с подтверждением запуска операции


Будет создана политика, откроется карточка политики Рис. 16.

Карточка политики
Рисунок 16. Карточка политики


Первоначальный статус новой политики — “created” (Создана).

Карточка политики

Карточка политики состоит из следующих основных блоков и элементов интерфейса:

  • блок с кнопками управления, кнопкой Параметры политики, кнопкой Открыть команды и атрибутами политики Рис. 16 [1]

    перечень атрибутов политики приведён в таблице 5

    Таблица 5. Перечень атрибутов политики
    АтрибутОписание
    ТипТип политики
    СтатусСтатус политики
    СозданаВремя создания политики
    ПользовательИмя пользователя, создавший политику
  • блок выполнения политики Рис. 16 [2]

    • вкладка Все

      на вкладке отображается список всех адресатов (клиентов, на которые планируется или уже запущена политика)

    • вкладка Ожидает

      на вкладке отображается список адресатов (клиентов), находящихся в режиме ожидания

    • вкладка В процессе

      на вкладке отображается список адресатов (клиентов), находящихся в процессе выполнения

    • вкладка С ошибкой

      на вкладке отображается список адресатов (клиентов) с ошибками выполнения

    • вкладка Успешно

      на вкладке отображается список адресатов (клиентов) с успешно выполненными политиками

  • таблица Карточки политики Рис. 16 [3]

    перечень полей таблицы Карточки политики приведён в таблице 6

    Таблица 6. Перечень полей таблицы Карточки политики
    Имя поляЗначение
    ID клиентаИдентификатор политики
    КонтроллерНаименование контроллера
    СтатусСтатус клиента
    Количество запусковКоличество проделанных запусков политик
    ЗапущенаПериод запуска политики
    ЗавершенаПериод завершения политики

Выполнение задач и политик

к сведению

В данном разделе рассмотрены операции запуска и перезапуска политики, статусы выполнения политики.
Аналогичные операции действуют для задач, за исключением неограниченного периода выполнения.

Для того чтобы запустить политику, в блоке с кнопками управления Рис. 16 [1], нажмите кнопку Запустить.
Будет запущена политика со сменой состояния атрибута клиентов Статус Рис. 17 [1] на Выполняется.
При этом в таблице Карточка политики Рис. 17 [3] в строке клиентов в поле Статус атрибут поочерёдно изменится с Ожидает на В процессе Рис. 17 [2].

Карточка политики: выполнение политики
Рисунок 17. Карточка политики: выполнение политики


Далее при завершении выполнения политики на клиентах атрибут Статус изменит состояние на Успешно Рис. 19 [1] или С ошибкой Рис. 18.

В случае завершения выполнения политики на клиентах с состоянием С ошибкой (в атрибуте Статус) доступны следующие элементы перезапуска политики:

  • Кнопка перезапуска в блоке с кнопками управления (глобальный перезапуск) Рис. 18 [1]

    позволяет инициировать полный перезапуск выполнения политики для всех клиентов, которые входят в область её действия

  • Кнопка перезапуска в строке конкретного клиента (локальный перезапуск) Рис. 18 [2]

    позволяет перезапустить политику только для выбранного клиента, не затрагивая остальные узлы

Карточка политики: ошибка выполнения
Рисунок 18. Карточка политики: ошибка выполнения


Политика перейдёт в режим Ожидание клиентов Рис. 19 [2].

Карточка политики: успешное выполнение
Рисунок 19. Карточка политики: успешное выполнение


Для просмотра результатов выполнения политики нажмите на строку нужного клиента.
Справа откроется карточка клиента со вкладкой Результат запуска.
В ней отображаются выполненные тестовые модули в формате JSON Рис. 20, которые используются для демонстрации возможностей системы и проверки связи с клиентами.

Вкладка "Результат запуска"
Рисунок 20. Вкладка "Результат запуска"


Модуль Wait a bit (test.sleep): создает искусственную задержку выполнения.
Его назначение: симуляция длительных операций, проверка обработки таймаутов и корректности отображения статуса Выполняется в интерфейсе.

Модуль Show result (test.true): подтверждает доступность клиента.
Его назначение: быстрая диагностика сетевой связности и проверка готовности клиента к выполнению команд.

JSON-представление результата позволяет увидеть:

  • какие состояния были применены,
  • какие изменения внесены,
  • какие операции были выполнены — список операций (например, установка пакетов, изменение конфигурационных файлов),
  • статус каждой операции — success, failed, changed и пр.,
  • ошибки и сообщения — подробные сообщения об ошибках конфигурации, синтаксиса SLS, недоступности клиента и т.п.
к сведению

Страница Результат запуска необходима для:

  • проверки успешности применения политики,
  • диагностики ошибок,
  • анализа, какие изменения были внесены

Для просмотра списка всех политик, выполненных на клиентах текущей отображаемой коллекции, выберите вкладку Политики, расположенную в верхней левой части страницы коллекции клиентов.
Вид таблицы политик показан на Рис. 21.

Список политик
Рисунок 21. Список политик

Диаграммы состояний задач и политик

Граф выполнения задачи

На Рис. 22 показан граф выполнения задачи.

Условия переходов между статусами задачи, выполняемых автоматически либо при определённых действиях пользователя, приведены в таблице 7.

Граф выполнения задачи
Рисунок 22. Граф выполнения задачи

Таблица 7. Таблица переходов графа выполнения задачи
Метка
дуги
Условие перехода
1Пользователь нажал кнопку Run
2Пользователь нажал кнопку Stop
3Система выполнила все необходимые операции для остановки
4Пользователь нажал кнопку Run
5Задача выполнена успешно

Граф выполнения политики

На Рис. 23 показан граф выполнения политики.

Условия переходов между статусами политики, выполняемых автоматически либо при определённых действиях пользователя, приведены в таблице 8.

Граф выполнения политики
Рисунок 23. Граф выполнения политики

Таблица 8. Таблица переходов графа выполнения политики
Метка
дуги
Условие перехода
1Пользователь нажал кнопку Run
2Пользователь нажал кнопку Stop
3Система выполнила все необходимые операции для остановки
4Пользователь нажал кнопку Run
5Политика переходит в режим ожидания клиента
6После появления релевантного клиента выполнение политики возобновляется

Граф состояний клиента в составе задачи

Под клиентом в составе задачи подразумевается объект SALT.BOX, содержащий объект клиента SALT.BOX, попавший в адресаты задачи, и хранящий статус клиента.
На каждом отдельном клиенте агент SALT.BOX формирует собственный ответ Job Return с результатом выполнения SaltStak Job.
Результирующее состояние клиента в составе задачи зависит, таким образом, от того, выполнены ли успешно все команды на отдельных клиентах.

На Рис. 24 показан граф состояний клиента в составе задачи.

Условия переходов между состояниями клиента приведены в таблице 9.

Граф состояний клиента в составе задачи
Рисунок 24. Граф состояний клиента в составе задачи

Таблица 9. Таблица переходов графа состояний клиента в составе задачи
Метка
дуги
Условие перехода
1Получено подтверждение от salt-master о создании SaltStack Job.
Ожидаются ответы Job Return
2Получены все Job Return, все успешны
3Получены все Job Return, есть ответы с ошибками

Граф выполнения команды на отдельном клиенте

На Рис. 25 показан граф выполнения команды при её выполнении на отдельном клиенте.

Условия переходов между статусами команды приведены в таблице 10.

Граф выполнения команды на отдельном клиенте
Рисунок 25. Граф выполнения команды на отдельном клиенте

Таблица 10. Таблица переходов графа выполнения команды на отдельном клиенте
Метка
дуги
Условие перехода
1От salt-master получено подтверждение о создании SaltStack Job, клиент попал в нацеливание.
Ожидается ответ Job Return по клиенту
2Получен успешный Job Return по клиенту
3Получен отрицательный Job Return по клиенту
4От salt-master получено подтверждение о создании SaltStack Job, но клиент по какой-то причине не попал в нацеливание

Диаграмма выполнения задачи

Диаграмма выполнения задачи
Рисунок 26. Диаграмма выполнения задачи

Таблица 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.