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

Команды

Пример получения информации о наборе параметров сетевых интерфейсов (для одного миньона или группы миньонов)

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

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

  • IP-адрес (Internet Protocol Address) компьютера (Локальный IPv4-адрес сетевого интерфейса).

  • Маску подсети (Subnet Mask).

  • Шлюз по умолчанию (Default Gateway).

  • DNS-серверы.

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

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

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

    Переход в пункт Команды. Выбор кнопки +Создать команду
    Рисунок 1. Переход в пункт Команды. Выбор кнопки +Создать команду


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

    Диалоговое окно создания команды. Выбор функции
    Рисунок 2. Диалоговое окно создания команды. Выбор функции


    примечание

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

  3. В диалоговом окне Cоздание команды, в поле Тип цели выберите параметр grain Рис. 2 (область 1).

  4. В поле Цель Рис. 2 (область 2) введите название ОС. Это позволит сделать отбор только по указанным параметрам.

    к сведению

    Для типа нацеливания grain будет синтаксис: ключ элемента grain и следующее за ним glob-выражение, например: os:Windows* Рис. 2 (область 2).

  5. В поле Функция введите название функции 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-адресов, присвоенных хосту (с возможностью фильтрации по интерфейсу или подсети).

  6. Нажмите кнопку Создать Рис. 2 (область 4).

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

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

к сведению

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

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

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

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

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


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


к сведению

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

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

  1. host* (модуль Glob): Фильтрация по имени.
  2. P@os:ALT.* (модуль Grains_psre): Фильтрация по логической конфигурации (применяется только к миньонам с ОС ALT Linux).
    Фильтрация по P@os:ALT.* дает более правильный и безопасный вариант по сравнению с P@os:ALT* (модуль grains).
  3. 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.

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

    Диалоговое окно создания команды. Выбор функции и заполнение полей
    Рисунок 6. Диалоговое окно создания команды. Выбор функции и заполнение полей


    примечание

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

  3. В диалоговом окне Cоздание команды, в поле Тип цели выберите параметр compound Рис. 6 (область 1).

  4. Заполните поле Цель Рис. 6 (область 2).

    к сведению

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

  5. Из раскрывающегося списка поля Функция выберите функцию (или введите название) user.add Рис. 6 (область 3).

    к сведению

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

  6. В обязательном поле Name укажите имя пользователя Рис. 6 (область 4).
    На Рис. 6 (область 5) и Рис. 7 (область 1) представлены заполненные необязательные поля, например поля Groups, Shell, Fullname и т.д.

    Диалоговое окно создания команды (продолжение). Заполнение полей. Кнопка Создать
    Рисунок 7. Диалоговое окно создания команды (продолжение). Заполнение полей. Кнопка Создать


  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.

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


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


к сведению

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

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