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

Запуск команд

Пример 1. Получение информации о наборе параметров сетевых интерфейсов

Описание задачи

Цель задачи в качестве примера: необходимо получить информацию о следующих параметрах сетевых интерфейсов клиента (или группы клиентов) с установленной ОС Windows:

  • IP-адрес сетевого интерфейса;
  • маску подсети (Subnet Mask);
  • шлюз по умолчанию (Default Gateway);
  • DNS-серверы.

Создание команды

В качестве типа нацеливания рекомендуется выбрать параметр grain.
В SALT.BOX модуль Grains используется для построения статических данных клиентов.
Эти данные включают в себя информацию о наборе параметров сетевых интерфейсов, ОС, CPU архитектуре и др.

Для того чтобы получить информацию о параметрах сетевых интерфейсов, необходимо создать команду:

  1. Перейдите в пункт Команды Рис. 1.

    Переход на страницу "Команды"
    Рисунок 1. Переход на страницу "Команды"


  2. Далее на странице Команды нажмите кнопку +Создать команду, расположенную в верхней левой части страницы
    Рис. 1.
    Будет выведено диалоговое окно Выберите функцию Рис. 2.

    Окно выбора функции
    Рисунок 2. Окно выбора функции


  3. В поле поиска функции Рис. 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. Диалоговое окно "Настройки команды"


    примечание

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

  4. В диалоговом окне Настройки команды, в поле Тип цели выберите параметр grain Рис. 3 [1].

  5. В поле Цель Рис. 3 [2] введите название ОС. Это позволит сделать отбор только по указанным параметрам.

    к сведению

    Для типа нацеливания grain будет синтаксис: ключ грейна и следующее за ним glob-выражение, например: os:Windows* Рис. 3 [2].

  6. После настройки команды нажмите кнопку Создать Рис. 3 [4].

Разбор ответа

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

к сведению

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

Признаками положительного результата исходя из описания задачи будут:

  • Сверху на странице выполненной команды появится индикатор зеленого цвета Рис. 4.
  • В таблице страницы результатов в столбце Статус появится заполненный атрибут со значением Успешно с индикатором зеленого цвета Рис. 4.
  • В поле кода возврата выполнения retcode должно появиться значение 0 Рис. 5.
  • В поле результата выполнения функции data должна появиться полная, структурированная информация о сетевых интерфейсах. Рис. 5.
к сведению

Таким образом, комбинация типа цели grain с функцией ip.get_all_interfaces в SALT.BOX выполняет две операции: фильтрацию клиентов по их системным данным (grains) и запуск команды для сбора сетевой информации на отобранных машинах.

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


В подробном результате выполнения команды отображаются все поля JSON-ответа Рис. 5.

Подробный результат успешно выполненной команды
Рисунок 5. Подробный результат успешно выполненной команды


к сведению

Выполненная команда появится и будет доступна в списке команд на странице Команды Рис. 6.

Выполненная команда на странице "Команды"
Рисунок 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, в котором происходит следующая фильтрация:

  1. host* (модуль Glob): Фильтрация по имени.

  2. P@os:ALT.* (модуль Grains_pcre): Фильтрация по логической конфигурации (применяется только к клиентам с ОС ALT Linux).

    к сведению

    Фильтрация по P@os:ALT.* дает более правильный и безопасный вариант по сравнению с P@os:ALT* (модуль grains).

  3. 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. На странице Команды нажмите кнопку +Создать команду, расположенную в верхней левой части страницы Рис. 1.

    Будет выведено диалоговое окно Выберите функцию Рис. 2.

  3. В поле поиска функции Рис. 2 введите название user.add Рис. 7 [3].

    к сведению

    Функция user.add является частью модуля выполнения user в SaltStack. Она используется для добавления нового пользователя в систему на целевых клиентах.

    После выбора функции откроется диалоговое окно Настройки команды Рис. 7.

    Диалоговое окно "Настройки команды"
    Рисунок 7. Диалоговое окно "Настройки команды"


    примечание

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

  4. В диалоговом окне Настройки команды в поле Тип цели выберите параметр compound Рис. 7 [1].

  5. Заполните поле Цель Рис. 7 [2].

    к сведению

    Для типа нацеливания compound синтаксис будет состоять из различных параметров (типов целей), разделенных логическими операторами and, or, not.
    Пример: host* and P@os:ALT.* and S@192.168.122.0/24 Рис. 7 [2].

  6. Нажмите кнопку Расширенные настройки Рис. 7 [4].

  7. В обязательном поле Username укажите имя пользователя Рис. 7 [5].
    На Рис. 7 [6] и Рис. 8 [1] представлены заполненные необязательные поля, например поля Groups, Fullname и т.д.

    Диалоговое окно "Настройки команды" (продолжение)
    Рисунок 8. Диалоговое окно "Настройки команды" (продолжение)


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

Разбор ответа

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

к сведению

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

Признаками положительного результата исходя из описания задачи будут:

  • Сверху на странице выполненной команды появится индикатор зеленого цвета Рис. 9.
  • В таблице страницы результатов в столбце Статус появится заполненный атрибут со значением Успешно с индикатором зеленого цвета Рис. 9.
  • В поле кода возврата выполнения retcode должно появиться значение 0 Рис. 10,
  • В поле результата выполнения функции data должно появиться значение true Рис. 10.
к сведению

В результате выполнения данного примера на всех клиентах, находящихся в подсети 192.168.122.0/24, имеющих грейн os со значением, начинающимся на "ALT" и имена, начинающиеся с host, будет создан системный пользователь с именем test_user.

Результат успешно выполненной команды
Рисунок 9. Результат успешно выполненной команды


Подробный результат успешно выполненной команды
Рисунок 10. Подробный результат успешно выполненной команды


к сведению

Выполненная команда появится и будет доступна в списке команд на странице Команды Рис. 11.

Выполненная команда на странице "Команды"
Рисунок 11. Выполненная команда на странице "Команды"