Команды
Пример получения информации о наборе параметров сетевых интерфейсов (для одного миньона или группы миньонов)
Описание задачи
Цель задачи в качестве примера: необходимо получить информацию о следующих параметрах сетевых интерфейсов миньона (или группы миньонов) с установленной ОС Windows:
-
IP-адрес (Internet Protocol Address) компьютера (Локальный IPv4-адрес сетевого интерфейса).
-
Маску подсети (Subnet Mask).
-
Шлюз по умолчанию (Default Gateway).
-
DNS-серверы.
Создание команды
В качестве типа нацелевания рекомендуется выбрать параметр grain.
В Salt.Box модуль Grains используется для построения статических данных о миньонах. Эти данные включают в себя информацию о наборе параметров сетевых интерфейсов, ОС, CPU архитектуре и др.
Для того чтобы получить информацию о параметрах сетевых интерфейсов, необходимо создать команду:
-
Перейдите в пункт Команды Рис. 1.
Рисунок 1. Переход в пункт Команды. Выбор кнопки
+Создать команду
-
Далее на странице Команды нажмите кнопку
+Создать команду, расположенную в верхней левой части страницы Рис. 1.
Будет выведено диалоговое окно создания команды Рис. 2.
Рисунок 2. Диалоговое окно создания команды. Выбор функции
примечаниеОбязательные поля отмечены знаком *
-
В диалоговом окне Cоздание команды, в поле
Тип целивыберите параметрgrainРис. 2 (область 1). -
В поле
ЦельРис. 2 (область 2) введите название ОС. Это позволит сделать отбор только по указанным параметрам.к сведениюДля типа нацеливания
grainбудет синтаксис: ключ элемента grain и следующее за ним glob-выражение, например:os:Windows*Рис. 2 (область 2). -
В поле
Функциявведите название функцииip.get_all_interfacesРис. 2 (область 3).к сведениюФункция
ip.get_all_interfacesсобирает и предоставляет подробную информацию о каждом сетевом интерфейсе, обнаруженном в ОС миньона (миньонов).
Функцияip.get_all_interfacesотносится к модулюwin_ipдля ОС Windows, в общих случаях для получения информации о сетевых интерфейсах на других ОС (Linux, Unix) в Salt.Box чаще используются:-
network.interfaces()— эта функция из модуляnetwork, возвращает словарь с информацией обо всех интерфейсах на миньоне, аналогично, но с другой структурой вывода -
network.ip_addrs()— возвращает список IPv4-адресов, присвоенных хосту (с возможностью фильтрации по интерфейсу или подсети).
-
-
Нажмите кнопку
СоздатьРис. 2 (область 4).
Разбор ответа
В результате вышеописанных действий произойдет переход на страницу выполненной команды с отображением результатов в виде таблицы Рис. 3.
Для того чтобы получить более детальную информацию о выводе результатов, нажмите кнопку Полный вывод Рис. 4.
Признаками положительного результата исходя из описания задачи будут:
- Сверху на странице выполненной команды появится индикатор зеленого цвета Рис. 3.
- В таблице страницы результатов в столбце
Успешнопоявится заполненный атрибут со значениемДас индикатором зеленого цвета Рис. 3. - В поле кода возврата выполнения
retcodeдолжно появиться значение0Рис. 4. - В поле результата выполнения функции
dataдолжна появиться полная, структурированная информация о сетевых интерфейсах. Рис. 4.
Таким образом, комбинация типа цели grain с функцией ip.get_all_interfaces в Salt.Box выполняет две операции: фильтрацию миньонов по их системным данным (grains) и запуск команды для сбора сетевой информации на отобранных машинах.
![]() |
|---|
![]() |
|---|
Полный вывод
Выполненная команда появится и будет доступна в списке команд на странице Команды Рис. 5.
![]() |
|---|
Более подробную информацию о том, как создаются команды со страницы команд см. в разделе Команды.
Пример добавления стандартного локального пользователя в ОС Linux
Описание задачи
Цель задачи в качестве примера: пользователю необходимо на все миньоны с установленной ОС Linux (например Alt Linux, платформа p11) добавить стандартного локального пользователя со следующими условиями:
- Имя пользователя присвоить
test_user. - Пользователь должен входить в группы
admиremote. - Командная оболочка пользователя должна быть
/bin/zsh. - Должны быть заполнены атрибуты
FullnameиWorkphoneпользователя.
Создание команды
В качестве типа нацеливания рекомендуется выбрать параметр compound (составной тип нацеливания).
В Salt.Box модуль Compound позволяет комбинировать несколько различных типов нацеливания (таких, как glob, grain, pillar, ipcidr и т.д.) в одной сложной логической структуре.
В данном примере в качестве цели предлагается выбрать комбинацию: host* and P@os:ALT.* and S@192.168.122.0/24, в котором происходит следующая фильтрация:
host*(модуль Glob): Фильтрация по имени.P@os:ALT.*(модуль Grains_psre): Фильтрация по логической конфигурации (применяется только к миньонам с ОС ALT Linux).
Фильтрация поP@os:ALT.*дает более правильный и безопасный вариант по сравнению сP@os:ALT*(модуль grains).S@192.168.122.0/24(модуль Ip cidr): Фильтрация по физическому сетевому адресу.
Если нацеливаться только поhost*, команда может затронуть и тестовые, и продакшен-серверы. Добавление типов целейP@os:ALT.*иS@192.168.122.0/24гарантирует, что действие произойдет только в нужном, изолированном сегменте.
Тип нацеливания compound дает возможность создать более точечный и комплексный фильтр, используя логические операторы для объединения или исключения миньонов, отобранных разными методами.
Преимущества использования такого сложного типа цели заключаются в безопасности, точности и гранулярности управления.
Для того чтобы добавить стандартного локального пользователя для одного миньона или группы миньонов с установленной ОС Linux (например Alt Linux, платформа p11), необходимо создать команду:
-
Перейдите в пункт Команды Рис. 1.
-
На странице Команды нажмите кнопку
+Создать команду, расположенную в верхней левой части страницы Рис. 1.
Будет выведено диалоговое окно создания команды Рис. 6.
Рисунок 6. Диалоговое окно создания команды. Выбор функции и заполнение полей
примечаниеОбязательные поля отмечены знаком *
-
В диалоговом окне Cоздание команды, в поле
Тип целивыберите параметрcompoundРис. 6 (область 1). -
Заполните поле
ЦельРис. 6 (область 2).к сведениюДля типа нацеливания
compoundсинтаксис будет состоять из различных параметров (типов целей), разделенных логическими операторамиand,or,not.
Пример:host* and P@os:ALT.* and S@192.168.122.0/24Рис. 6 (область 2). -
Из раскрывающегося списка поля
Функциявыберите функцию (или введите название)user.addРис. 6 (область 3).к сведениюФункция
user.addявляется частью модуля выполненияuserв SaltStack. Она используется для добавления нового пользователя в систему на целевых миньонах. -
В обязательном поле
Nameукажите имя пользователя Рис. 6 (область 4).
На Рис. 6 (область 5) и Рис. 7 (область 1) представлены заполненные необязательные поля, например поляGroups,Shell,Fullnameи т.д.
Рисунок 7. Диалоговое окно создания команды (продолжение). Заполнение полей. Кнопка
Создать
-
Нажмите кнопку
СоздатьРис. 7 (область 2).
Разбор ответа
В результате вышеописанных действий произойдет переход на страницу выполненной команды с отображением результатов Рис. 8.
Для того чтобы получить более детальную информацию о выводе результатов, нажмите кнопку Полный вывод Рис. 9.
Признаками положительного результата исходя из описания задачи будут:
- Сверху на странице выполненной команды появится индикатор зеленого цвета Рис. 8.
- В таблице страницы результатов в столбце
Успешнопоявится заполненный атрибут со значениемДас индикатором зеленого цвета Рис. 8. - В поле кода возврата выполнения
retcodeдолжно появиться значение0Рис. 9, - В поле результата выполнения функции
dataдолжно появиться значениеtrueРис. 9.
Общим результатом данного примера является: то, что на всех миньонах, чьи имена начинаются с host, которые находятся в подсети 192.168.122.0/24 и которым назначен grain_psre os:ALT., будет создан системный пользователь с именем test_user.
![]() |
|---|
![]() |
|---|
Полный вывод
Выполненная команда появится и будет доступна в списке команд на странице Команды Рис. 10.
![]() |
|---|





