Запуск команд
Пример 1. Получение информации о наборе параметров сетевых интерфейсов
Описание задачи
Цель задачи в качестве примера: необходимо получить информацию о следующих параметрах сетевых интерфейсов клиента (или группы клиентов) с установленной ОС Windows:
- IP-адрес сетевого интерфейса;
- маску подсети (Subnet Mask);
- шлюз по умолчанию (Default Gateway);
- DNS-серверы.
Создание команды
В качестве типа нацеливания рекомендуется выбрать параметр grain.
В SALT.BOX модуль Grains используется для построения статических данных клиентов.
Эти данные включают в себя информацию о наборе параметров сетевых интерфейсов, ОС, CPU архитектуре и др.
Для того чтобы получить информацию о параметрах сетевых интерфейсов, необходимо создать команду:
-
Перейдите в пункт Команды Рис. 1.
Рисунок 1. Переход на страницу "Команды"
-
Далее на странице Команды нажмите кнопку
+Создать команду, расположенную в верхней левой части страницы
Рис. 1.
Будет выведено диалоговое окно Выберите функцию Рис. 2.
Рисунок 2. Окно выбора функции
-
В поле поиска функции Рис. 2 введите название
ip.get_all_interfacesРис. 3 [3].к сведениюФункция
ip.get_all_interfacesсобирает и предоставляет подробную информацию о каждом сетевом интерфейсе, обнаруженном в ОС клиента (клиентов).
Функцияip.get_all_interfacesотносится к модулюwin_ipдля ОС Windows, в общих случаях для получения информации о сетевых интерфейсах на других ОС (Linux, Unix) в SALT.BOX чаще используются:network.interfaces()— эта функция из модуляnetwork, возвращает словарь с информацией обо всех интерфейсах клиента, аналогично, но с другой структурой выводаnetwork.ip_addrs()— возвращает список IPv4-адресов, присвоенных хосту (с возможностью фильтрации по интерфейсу или подсети).
После выбора функции откроется диалоговое окно Настройки команды Рис. 3
Рисунок 3. Диалоговое окно "Настройки команды"
примечаниеОбязательные поля отмечены знаком *
-
В диалоговом окне Настройки команды, в поле
Тип целивыберите параметрgrainРис. 3 [1]. -
В поле
ЦельРис. 3 [2] введите название ОС. Это позволит сделать отбор только по указанным параметрам.к сведениюДля типа нацеливания
grainбудет синтаксис: ключ грейна и следующее за ним glob-выражение, например:os:Windows*Рис. 3 [2]. -
После настройки команды нажмите кнопку
СоздатьРис. 3 [4].
Разбор ответа
В результате вышеописанных действий произойдет переход на страницу выполненной команды с отображением результатов в виде таблицы (вкладка Стандартный) Рис. 4.
Для того чтобы получить более детальную информацию о выводе результатов, нажмите на вкладку Подробный Рис. 5.
Признаками положительного результата исходя из описания задачи будут:
- Сверху на странице выполненной команды появится индикатор зеленого цвета Рис. 4.
- В таблице страницы результатов в столбце
Статуспоявится заполненный атрибут со значениемУспешнос индикатором зеленого цвета Рис. 4. - В поле кода возврата выполнения
retcodeдолжно появиться значение0Рис. 5. - В поле результата выполнения функции
dataдолжна появиться полная, структурированная информация о сетевых интерфейсах. Рис. 5.
Таким образом, комбинация типа цели grain с функцией ip.get_all_interfaces в SALT.BOX выполняет две операции: фильтрацию клиентов по их системным данным (grains) и запуск команды для сбора сетевой информации на отобранных машинах.
![]() |
|---|
В подробном результате выполнения команды отображаются все поля JSON-ответа Рис. 5.
![]() |
|---|
Выполненная команда появится и будет доступна в списке команд на странице Команды Рис. 6.
![]() |
|---|
Более подробную информацию о том, как создаются команды со страницы команд см. в разделе Команды.
Пример 2. Добавление стандартного локального пользователя в ОС Linux
Описание задачи
Цель задачи в качестве примера: пользователю необходимо на всех клиентов с установленной ОС Linux (например Alt Linux, платформа p11) добавить стандартного локального пользователя со следующими условиями:
- Имя пользователя присвоить
user_test_new. - Пользователь должен входить в группы
admиremote. - Должны быть заполнены атрибуты
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_pcre): Фильтрация по логической конфигурации (применяется только к клиентам с ОС ALT Linux).к сведениюФильтрация по
P@os:ALT.*дает более правильный и безопасный вариант по сравнению сP@os:ALT*(модуль grains). -
S@192.168.122.0/24(модуль IP CIDR): Фильтрация по физическому сетевому адресу.
Если нацеливаться только по host*, команда может затронуть и тестовые, и production-серверы.
Добавление типов целей P@os:ALT.* и S@192.168.122.0/24 гарантирует, что действие произойдет только в нужном, изолированном сегменте.
Тип нацеливания compound дает возможность создать более точечный и комплексный фильтр, используя логические операторы для объединения или исключения клиентов, отобранных разными методами.
Преимущества использования такого сложного типа цели заключаются в безопасности, точности и гранулярности управления.
Для того чтобы добавить стандартного локального пользователя на одном клиенте или группе клиентов с установленной ОС Linux (например Alt Linux, платформа p11), необходимо создать команду:
-
Перейдите в пункт Команды Рис. 1.
-
На странице Команды нажмите кнопку
+Создать команду, расположенную в верхней левой части страницы Рис. 1.Будет выведено диалоговое окно Выберите функцию Рис. 2.
-
В поле поиска функции Рис. 2 введите название
user.addРис. 7 [3].к сведениюФункция
user.addявляется частью модуля выполненияuserв SaltStack. Она используется для добавления нового пользователя в систему на целевых клиентах.После выбора функции откроется диалоговое окно Настройки команды Рис. 7.
Рисунок 7. Диалоговое окно "Настройки команды"
примечаниеОбязательные поля отмечены знаком *
-
В диалоговом окне Настройки команды в поле
Тип целивыберите параметрcompoundРис. 7 [1]. -
Заполните поле
ЦельРис. 7 [2].к сведениюДля типа нацеливания
compoundсинтаксис будет состоять из различных параметров (типов целей), разделенных логическими операторамиand,or,not.
Пример:host* and P@os:ALT.* and S@192.168.122.0/24Рис. 7 [2]. -
Нажмите кнопку Расширенные настройки Рис. 7 [4].
-
В обязательном поле
Usernameукажите имя пользователя Рис. 7 [5].
На Рис. 7 [6] и Рис. 8 [1] представлены заполненные необязательные поля, например поляGroups,Fullnameи т.д.
Рисунок 8. Диалоговое окно "Настройки команды" (продолжение)
-
Нажмите кнопку
СоздатьРис. 8 [2].
Разбор ответа
В результате описанных выше действий произойдет переход на страницу выполненной команды (вкладка Стандартный) с отображением результатов Рис. 9.
Для того чтобы получить более детальную информацию о выводе результатов, нажмите на вкладку Подробный Рис. 10.
Признаками положительного результата исходя из описания задачи будут:
- Сверху на странице выполненной команды появится индикатор зеленого цвета Рис. 9.
- В таблице страницы результатов в столбце
Статуспоявится заполненный атрибут со значениемУспешнос индикатором зеленого цвета Рис. 9. - В поле кода возврата выполнения
retcodeдолжно появиться значение0Рис. 10, - В поле результата выполнения функции
dataдолжно появиться значениеtrueРис. 10.
В результате выполнения данного примера на всех клиентах, находящихся в подсети 192.168.122.0/24, имеющих грейн os со значением, начинающимся на "ALT" и имена, начинающиеся с host, будет создан системный пользователь с именем test_user.
![]() |
|---|
![]() |
|---|
Выполненная команда появится и будет доступна в списке команд на странице Команды Рис. 11.
![]() |
|---|





