Миньоны
Миньон — это агентское приложение, которое устанавливается на управляемых узлах инфраструктуры SaltStack и обеспечивает взаимодействие с мастером SaltStack.
Миньон обеспечивает выполнение команд, подаваемых мастером, сбор информации с управляемого узла и управление его программной конфигурацией.
Мньоном также называется сам управляемый узел с функционирующим агентом — службой salt-minion
.
Версии миньонов для операционных систем Windows® и GNU/Linux имеют схожие функциональные возможности, но отличаются наборами методов модулей выполнения и модулей состояния.
При первом запуске миньон устанавливает соединение с мастером, адрес которого указан в конфигурационном файле миньона.
Миньон инициирует процедуру рукопожатия и отправляет свой публичный ключ мастеру.
После установки первичного соединения публичный ключ миньона сохраняется на мастере.
Затем мастер передает миньону свой публичный ключ вместе с ротируемым симметричным ключом AES, используемым для шифрования и дешифрования сообщений, передаваемых мастером.
Ключ AES передается зашифрованным публичным ключом, полученным ранее от миньона.
Весь дальнейший обмен между мастером и миньоном шифруется ключами AES.
Ротируемый ключ AES используется для шифрования команд, отправляемых мастером миньону, и для шифрования соединений с файловым сервером мастера SaltStack.
Ключ генерируется повторно при каждом перезапуске мастера, а также каждый раз, когда ключ миньона удаляется командой salt-key
.
После ротации ключа все миньоны должны выполнить повторную аутентификацию для получения обновленного ключа.
Это позволяет выполнять ротацию ключа AES без необходимости прерывания соединения с миньоном.
Данные публикаций между мастером и миньоном шифруются ключом AES с ротацией.
При прямом взаимодействии мастера и миньона данные шифруются уникальным ключом AES для каждой сессии.
Допуск мастера к управлению миньонами
Программный комплекс Salt.Box поддерживает возможность работы с несколькими мастер-серверами.
Каждый мастер может управлять только зарегистрировавшимися на нём миньонами (т.е. выполнившими с ним успешный обмен ключами PKI).
Чтобы разрешить или запретить мастеру осуществлять управление миньонами, выполните следующие действия:
-
В главном меню системы выберите пункт
Masters
. Вы перейдёте на страницу управления мастерами Рис. 1.
Рисунок 1. Допуск мастера к управлению миньонами -
Чтобы разрешить управление миньонами мастера, в соответствующей записи таблицы в поле Actions нажмите
Accept
. -
Чтобы запретить управление миньонами мастера, в соответствующей записи таблицы в поле Actions нажмите
Reject
.
Коллекции миньонов
Отображение коллекций, доступных пользователю
Пользователи Salt.Box имеют право просмотра и управления определёнными наборами миньонов, называемыми коллекциями.
Право доступа к коллекции (или набору коллекций) предоставляется пользователю администратором.
В Salt.Box выделена специальная роль collections_admin
, предоставляющая пользователю право на просмотр корневой коллекции (root collection) миньонов, т.е. множества ВСЕХ миньонов, зарегистрированных на ВСЕХ мастерах, известных Salt.Box.
О добавлении пользователей в систему и назначении ролей см. раздел онлайн-документации Настройка KeyCloak.
В данном разделе рассматриваются примеры для пользователя user
, которому назначена роль collections_admin
.
Чтобы вывести список миньоны определённой коллекции, доступной пользователю, выполните следующие действия:
-
В главном меню системы выберите пункт
Minions
.
На появившейся выдвижной панели Рис. 2 будут показаны все доступные коллекции.
Рисунок 2. Список доступных коллекций -
Выберите нужную коллекцию.
В рабочей области окна браузера будет выведен список миньонов выбранной коллекции Рис. 3.
Рисунок 3. Список миньонов выбранной коллекции
Фильтр коллекции
Набор миньонов в коллекции определяется фильтром коллекции.
Пользователь может применить к исходной коллекции, отображаемой в рабочем окне, дополнительный фильтр и сохранить результирующую коллекцию в Salt.Box.
Фильтр является логическим выражением, состоящим из элементарных "Rule" — операций сравнения и предикатов (в зависимости от типов аргументов), объединённых логическими операторами AND
и OR
.
Приоритет действий при вычислении логического выражения — стандартный для булевой алгебры, также может использоваться группировка с помощью конструкции "Group" — своеобразных "скобок" в выражении.
На Рис. 4 показан пример дополнительного пользовательского фильтра.
-
Чтобы применить созданный фильтр к исходному списку, нажмите кнопку 🔍
Search
внизу слева от набора условий фильтра Рис. 4.
Рисунок 4. Фильтр коллекции -
Чтобы создать коллекцию на основе применённого фильтра, нажмите кнопку 💾 внизу справа от набора условий фильтра Рис. 4.
-
В диалоговом окне создания коллекции заполните поля
title
иslug
Рис. 5.
Обратите внимание на подсказку с требованиями к набору символов, используемому в полеslug
.
Нажмите кнопкуCreate
Рисунок 5. Создание коллекцииНовая коллекция будет создана и станет доступной для выбора пользователю на выдвижной панели Рис. 2.
Информация о миньоне
После первого подключения миньона к мастеру на миньоне автоматически запускается метод модуля выполнения grains.items
.
Этот метод выполняет сбор редко меняющейся (статической) информации об аппаратном и программном обеспечении миньона.
После выполнения указанного метода в карточке миньона отображается собранная информация Рис. 6.
Перейти в карточку миньона можно нажав на ссылку в поле MID
в записи соответствующего миньона.
На рисунках Рис. 7 – Рис. 13 показаны примеры групп полученных от миньонов данных grains
.
![]() |
---|
![]() |
---|
![]() |
---|
![]() |
---|
![]() |
---|
![]() |
---|
![]() |
---|
Создание команд и задач
Создание команды
Команду SaltStack для отдельного миньона можно создать непосредственно из карточки миньона:
-
Нажмите кнопку
Create Job
, расположенную в верхней левой части карточки Рис. 6.
Будет выведено диалоговое окно создания команды, при этом в поляхTarget type
иTarget
будут указаны необходимые значения: тип нацеливания и идентификатор миньона. -
Выберите метод, вызываемый командой, и при необходимости укажите аргументы, передаваемые методу.
к сведениюПодробно порядок создания, управления и мониторинга выполнения команд SaltStack разобран в разделе онлайн-документации Команды SaltStack.
Создание задачи
Задачу для группы миньонов можно создать со страницы миньонов:
-
В списке миньонов отображаемой коллекции Отметьте флажками нужные миньоны Рис. 3.
-
Нажмите кнопку
Create Task
, расположенную в верхней левой части списка.
Будет выведено диалоговое окно создания задачи. -
Укажите необходимые параметры и создайте задачу.
к сведениюПодробно порядок создания, управления и мониторинга выполнения задач разобран в разделе онлайн-документации Задачи.
Просмотр задач, выполненных на миньонах отображаемой коллекции
Для просмотра списка всех задач, выполненных на миньонах текущей отображаемой коллекции, выберите вкладку Tasks
, расположенную в верхней левой части страницы миньонов.
Вид таблицы задач показан на Рис. 14.
![]() |
---|
В таблице 1 приведён перечень полей таблицы задач.
Таблица 1. Перечень полей таблицы задачИмя поля | Значение |
---|---|
ID | Идентификатор задачи |
Task Template Title | Название порождающего шаблона |
Task Template Name | Системное имя порождающего шаблона |
Collection | Коллекция-владелец задачи |
User | Пользователь, создавший задачу |
Status | Статус завершения задачи |
Created | Период создания |
Статистика по миньонам
Для просмотра статистической информации об аппаратном и программном обеспечении миньонов выберите вкладку Statistics
, расположенную в верхней левой части страницы миньонов.
Блоки статистической информации имеют настраиваемое представление.
Можно менять размещение блоков на странице, выбирать текстовое представление или представление в виде диаграммы в рамках блока информации.
Вид страницы статистики показан на Рис. 15, Рис. 16.
![]() |
---|
![]() |
---|