Системные администраторы могут создавать задания в SaltStack Config для выполнения удаленно исполняемых задач, применения состояний, запуска модулей runner в системе Salt и осуществления других действий. Как правило, задания, предназначены для системных операций, которые должны быть автоматизированы и выполняться многократно.

Перед началом работы

Задания в SaltStack Config обычно содержат один из модулей выполнения или модулей состояния, разработанных сообществом пользователей Salt, работающих с открытым исходным кодом. Поэтому администратору сначала необходимо ознакомиться с некоторыми основными понятиями о системе Salt и о том, как выполнять типовые задачи администрирования с помощью доступных модулей выполнения и модулей состояния.

Для получения сведений о... См. раздел...

Основы работы с Salt

Состояния Salt

Модули выполнения и модули состояния Salt

  • Указатель модулей Salt, где содержится список всех модулей Salt
  • Дополнительные сведения о выборе модуля для решения конкретных потребностей или особенностях использования конкретного модуля можно запросить в службе поддержки сообщества в рабочей области SaltStack Community Slack.

Создание заданий

Чтобы создать новое задание, выполните следующее.

  1. Найдите модули выполнения или модули состояния Salt, которые могут помочь получить нужный результат. Определив нужный модуль Salt, ознакомьтесь с его документацией. Особое внимание уделите параметрам модуля и прочим требованиям.
  2. Если для выполнения задания необходимо использовать модули состояния Salt, создайте новый файл состояния на файловом сервере SaltStack Config. Дополнительные сведения см. в Как создать файлы состояния и данные хранилища pillar?.
  3. Создайте новое задание.
    1. а.В боковом меню выберите Конфигурация > Задания, чтобы открыть рабочую область «Задания».
    2. б.Нажмите кнопку Создать задание.
      Примечание:

      Если кнопка «Создать задание» не отображается, у вас нет разрешения на создание новых заданий. Чтобы выполнить примеры из учебника, запросите у администратора vRealize Automation доступ или попросите его создать это задание от вашего имени.

    3. в.Введите сведения о новом задании.
      Поле Значение

      Имя

      Введите описательное имя для задания, чтобы кратко указать цель данного задания или задачу, которая должна быть выполнено этим заданием. Например, «Настройка параметров брандмауэра Windows».

      Описание

      Добавьте описание, благодаря которому другие пользователи смогут понять цель данного задания, например «Открытие брандмауэра для порта 445 на узлах Windows».

      Команда

      • Выберите salt для заданий, которые запускаются на служебных серверах.
      • Выберите salt-run для заданий, которые запускаются на главном сервере Salt. Задания salt-run также называются модулями выполнения Salt runner. Модули выполнения Salt используются для выполнения вспомогательных функций на главном сервере Salt. Модули выполнения Salt можно использовать для оркестрации, дистанционной подачи питания на служебные серверы, вызова веб-перехватчиков и прочего. Их удобно использовать для выполнения задач централизованным образом или из центральной начальной точки. Например, процесс highstate можно применить ко всем служебным серверам, связанным с заданным главным сервером Salt.

      Если вы не знаете, какой вариант выбрать, используйте salt, так как большинство заданий запускаются на служебных серверах.

      Примечание. Если будет необходимо изменить команду, вы получите новый список функций для выбора.

      Целевые объекты

      (Необязательно.) Целевым объектом является группа служебных серверов, относящихся к одному или нескольким главным серверам Salt, к которой применяется команда Salt в задании. Целевые объекты для заданий можно создать в рабочей области «Служебные серверы» или «Целевые объекты». Дополнительные сведения см. в Как создать целевые объекты?.

      Если нужно выбрать целевые объекты во время выполнения задания, не выбирайте никакие пункты в этом меню. Если оставить это поле пустым, целевой объект можно будет выбрать во время запуска задания. Однако, если целевой объект будет указан в задании, данное задание не будет выполняться на тех узлах, для которых оно не предназначено.

      Функция

      Выберите модуль Salt, который будет выполняться при запуске этого задания. Щелкните это поле и начните вводить имя модуля Salt, который необходимо выбрать, или выберите его в меню. Кроме того, можно ввести свое собственное значение, если модуль, который необходимо использовать, отсутствует в раскрывающемся списке.

      Если это задание предназначено для применения файла состояния Salt к служебному серверу, используйте модуль state.apply. Дополнительные сведения см. в разделе state.apply.

      Полный список модулей Salt см. в разделе Указатель модулей Salt. В Примеры стандартных заданий также имеется таблица с описанием наиболее часто используемых модулей.

      Аргументы

      Для передачи аргументов args и kwargs в модуль Salt можно использовать поле Аргументы.

      Каждая строка в поле Аргументы представляет отдельный аргумент. Например, если используется модуль file.copy, в него можно передать аргументы path/to/src/ и path/to/dst.

      Также можно использовать аргументы ключевых слов. Например, в модуль file.copy можно передать аргументы src=path/to/src/ и dst=path/to/dst/.

      Полный список модулей Salt см. в разделе Указатель модулей Salt.

      Среды

      Это поле доступно только в том случае, если оно применимо к выбранной функции, например state.apply, state.highstate и т. д.

      Выберите нужную среду Salt в меню или введите ее, если она не отображается в списке. Например, в случае применения файла состояния из базовой среды выберите в меню значение base.

      Состояния

      Это поле доступно только в том случае, если оно применимо к выбранной функции, например state.apply.

      Выберите в меню файл состояния, который необходимо применить, или введите его, если он не отображается в списке.

      Переопределение хранилища pillar

      Это поле доступно только в том случае, если оно применимо к выбранной функции, например state.apply. Это поле принимает данные хранилища pillar в формате JSON. Данные хранилища pillar сохраняются в определении задания и передаются в функцию модуля на этапе выполнения.

      Использование функции Ограничение хранилища pillar в SaltStack Config похоже на отправку настраиваемых значений Pillar через интерфейс командной строки. Значения, передаваемые таким образом, переопределяют существующие значения Pillar, заданные с помощью pillar_roots или внешнего источника Pillar. Значения pillar, не включенные в kwarg, перезаписаны не будут.

      Дополнительные сведения о данных хранилища Pillar см. в разделе Как создать файлы состояния и данные хранилища pillar?.

      Образец задания Apache в SaltStack Config
    4. г.(Необязательно.) Выберите вариант Выполнить как тест (пробное выполнение), чтобы запустить тестовое задание и создать пробный возвращаемый результат задания. Параметр «Тест (пробное выполнение)» доступен только для некоторых функций, например, для state.apply. Если выбрать «Тест», задание будет выполнено в тестовом режиме и никакие изменения не будут внесены. Если этот параметр не будет выбран, можно позже выбрать вариант выполнения задания в виде теста при запуске задания.
    5. д.(Необязательно) Добавьте Входные данные задания в задание. Дополнительные сведения см. в Добавление входных данных задания.
  4. Сохраните задание и убедитесь, что оно отображается в рабочей области «Задания».

Добавление входных данных задания

Системный администратор может использовать входные данные задания для настройки аргументов или переменных, которые другие пользователи могут изменять во время выполнения. Вместо создания нескольких заданий для разных примеров использования, можно создать универсальные задания (общего назначения), а затем определить для пользователей необязательные и обязательные входные данные задания. Это позволит уменьшить количество возможных запросов на создание заданий.

Одно из преимуществ использования входных данных заданий состоит в том, что можно ограничить или запретить доступ к тем типам аргументов или переменных, которые другие администраторы могут передать в функцию во время выполнения заданий, но при этом дать им возможность выполнять необходимые задачи в рамках своих полномочий. Таким образом, четко заданные входные данные заданий гарантируют выполнение организацией стандартных рекомендаций по обеспечению безопасности, например, по предоставлению минимальных прав.

Перед началом работы

Определите, какие входные данные заданий пользователям нужно редактировать

Прежде чем определить входные данные задания, необходимо понять, какие входные данные задания пользователи смогут просматривать и редактировать во время выполнения. Следует помнить, что кто-либо еще, кроме вас, может выполнить это задание и что способ отображения входных данных задания будет меняться в зависимости от настроек входных данных задания. Внимательно обдумайте, какие входные данные заданий смогут видеть и редактировать другие пользователи во время выполнения.

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

Таким образом, благодаря входным данным заданий, системные администраторы получают дополнительный контроль над тем, что другие администраторы смогут видеть и изменять во время выполнения заданий. Можно обеспечить гибкость и в то же время сделать так, что другие пользователи смогут изменять только то, что им разрешено в соответствии со своими служебными обязанностями или уровнем разрешений.

Для определения входных данных задания выполните следующее.
  1. В боковом меню выберите Конфигурация > Задания, чтобы открыть рабочую область Задания.
  2. Выберите задание, чтобы открыть сведения о нем.
  3. Прокрутите вниз до раздела Входные данные задания на странице сведений о задании.Снимок экрана со списком входных данных задания
  4. Нажмите кнопку Добавить входные данные задания.
  5. Введите сведения о входных данных задания.
    Поле Значение
    Отображаемое имя

    Задайте имя для входных данных задания.

    Когда пользователь видит эти входные данные задания во время выполнения, самым важным индикатором функции и назначения входных данных является введенное отображаемое имя.

    Выберите короткое, точное и описательное имя, например «Служба для перезапуска».

    Тип входных данных

    Задайте тип входных данных задания. Существует четыре типа входных данных: string (строка), number (число), boolean (логическое значение) и select (выбор).

    • Тип входных данных string нужно использовать, чтобы пользователи могли указать значение.
    • Если необходимо указать количество или размер, используйте тип number.
    • Тип boolean нужно использовать для параметров «истина» или «ложь».
    • Чтобы пользователи могли выбирать значения в списке, используйте тип select. В списке select могут быть строковые значения, числа или логические значения. Например, типом входных данных для задания «Служба для перезапуска» может быть список select, содержащий строковые значения. Например, httpd, sshd или mysqld.

    Прежде чем выбрать тип входных данных, ознакомьтесь с разделом Указатель модулей Salt. Тип входных данных определяется модулем Salt, который используется в задании, и параметром, который соответствует типу входных данных в модуле Salt. В случае выбора неправильного типа входных данных задание завершится сбоем.

    Показывать при выполнении задания

    Предоставление пользователям права на просмотр и редактирования значений во время выполнения задания.

    Если этот параметр включен, в окне Изменить входные данные задания появляется поле Текст справки.

    Если вам сложно найти короткое и точное отображаемое имя, используйте поле Текст справки, чтобы ввести дополнительные сведения о входных данных задания. Например, можно описать ситуацию, в которой пользователю будет нужно ввести значение.

    Этот текст справки будет отображаться под всплывающей подсказкой со справкой (?) рядом с именем входных данных задания, когда пользователь выполняет это задание.

    Ключевое слово

    Укажите параметр или аргумент, который передается в выполняемую функцию модуля. Дополнительные сведения о функциях модуля см. в разделе Указатель модулей Salt.

    Примечание. Входные данные заданий не поддерживают позиционные аргументы без ключевого слова. Их можно казать в задании в разделе Аргументы, но нельзя указать в ходе выполнения задания.

    Значение по умолчанию

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

    Продумайте, будет ли удобно указание значения по умолчанию для пользователей. Благодаря предоставлению значения по умолчанию пользователи смогут сэкономить время при выполнении заданий, но в некоторых ситуациях такое значение не требуется. Например, для входных данных задания с именем «ЦОД» значение по умолчанию может не требоваться, так как оно будет разным.

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

    Требуется во входных данных задания

    Если параметр Показывать при выполнении задания включен, у вас есть возможность требовать от пользователей ввода значения для входных данных задания.

    Продумайте, будет ли иметь смысл требовать от пользователей ввода значения. В ходе разработки заданий подумайте о том, что может произойти, если пользователи не введут значение. Если задание может завершиться сбоем, когда значение не введено, требуйте указывать его во время выполнения. Если задание может быть успешно выполнено без ввода значения, сделайте данный параметр необязательным.

    Если это возможно, используя поле Текст справки, введите необходимые сведения, чтобы пользователи смогли понять функцию входных данных задания.

  6. Сохраните входные данные задания и убедитесь, что они отображаются в списке входных данных заданий на странице сведений о задании.
    Примечание:

    В зависимости от используемой функции модуля в списке входных данных заданий могут отображаться другие поля, например, Среды, Состояния или Тест. Чтобы пользователи могли видеть эти входные данные во время выполнения, щелкните значок карандаша рядом с ключевым словом, чтобы изменить входные данные задания, и включите параметр Показывать при выполнении задания.

  7. Сохраните задание.
  8. Чтобы проверить, работают ли входные данные задания должным образом, войдите в SaltStack Config как пользователь, который может запускать задания, имея низкий уровень разрешений или роль с малыми правами доступа.

    Если входные данные задания отсутствуют, задание завершается сбоем или для входных данных требуются дополнительные аргументы или описания, внесите необходимые изменения в задание, прежде чем разрешить пользователям его запускать.

Дальнейшие действия

После создания задания его можно запустить без планирования или по обычному расписанию. Дополнительные сведения см. в следующих разделах.