Управление действиями Runbook

Важно!

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

Последовательность операций в модулях Runbook настраивается путем связывания действий в Designer Runbook. Эти ссылки называются смарт-ссылками , так как их можно настроить для управления типом данных, передаваемых из одного действия в другое. Вы также можете управлять тем, когда runbook завершает действия, задавая логику для выполнения этих операций с внедренными циклами. Наконец, текстовые и числовые операции можно использовать для управления данными при их прохождении между действиями или для задания условий для порядка операций. В этой статье описывается, как управлять последовательности и управлять данными в модикете Runbook.

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

Важно!

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

Важно!

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

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

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

Условие Описание
contains Указанный текст содержится в значении элемента опубликованных данных.
не содержит Указанный текст отсутствует в значении элемента опубликованных данных.
начинается с Значение элемента опубликованных данных начинается с указанного текста.
заканчивается на Значение элемента опубликованных данных заканчивается указанным текстом.
соответствует шаблону Значение элемента опубликованных данных соответствует указанному регулярному выражению.
не соответствует шаблону Значение элемента опубликованных данных соответствует указанному регулярному выражению.
equals (равно) Значение элемента опубликованных данных точно совпадает с указанным текстом.
не равно Значение элемента опубликованных данных не совпадает с указанным текстом.

Примечание

Текстовые значения не чувствительны к регистру.

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

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

Условие Описание
equals (равно) Значение элемента опубликованных данных точно равно указанному значению.
не равно Значение элемента опубликованных данных не равно указанному значению.
меньше Значение элемента опубликованных данных меньше указанного значения.
больше Значение элемента опубликованных данных больше указанного значения.
меньше или равно Значение элемента опубликованных данных меньше или равно указанному значению.
больше или равно Значение элемента опубликованных данных больше или равно указанному значению.
между Значение элемента опубликованных данных находится между двумя указанными значениями.

Выберите необходимую вкладку, чтобы добавить или удалить условие смарт-ссылки:

Повтор действий с внедренными циклами

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

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

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

Циклы выполняются один раз для каждого входящего фрагмента данных, передаваемого в действие. Например, рассмотрим модуль Runbook, использующий действие "База данных запросов ", за которым следует "Добавить строку". Если действие База данных запросов возвращает три строки, действие Добавление строки будет выполняться три раза. Если у вас есть цикл для действия Append Line , он будет выполнять три отдельных цикла. После того как первый элемент данных перешел через действие Append Line , следующий элемент проходит через Строку добавления и циклически завершается, а затем начинается третий. После обработки всех трех элементов выполняется следующее действие в модуле Runbook.

Настройка циклов

  1. Щелкните правой кнопкой мыши действие в runbook, чтобы выбрать Циклирование. Откроется диалоговое окно Свойства цикла .

  2. На вкладке Общие выберите Включить.

  3. В поле Задержка между попытками введите время паузы в секундах между каждой попыткой выполнения действия.

Условия "Выход" и "Не выход"

Правила на вкладке Выход определяют условия, определяющие, завершается ли цикл. Правила на вкладке "Не выход" определяют условия, которые приводят к продолжению цикла.

Важно!

Правила на вкладке "Не выход " заменяют правила на вкладке Выход .

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

Выберите необходимую вкладку для процедуры добавления или удаления условия выхода :

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

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

    Важно!

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

  2. Выберите указанное действие в условии, чтобы открыть диалоговое окно Опубликованные данные .

  3. Установите флажок Показать общие возвращаемые данные , чтобы отобразить свойства, общие для всех действий.

  4. Выберите свойство из опубликованных данных и нажмите кнопку ОК. Выражение условий изменяется в зависимости от типа данных, которые возвращает данное свойство.

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

  6. Нажмите кнопку Завершить.

Настройка расписания для модуля Runbook

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

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

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

Важно!

Разрешения на доступ для расписаний можно изменить, но сервер Runbook не применяет эти разрешения.

Примечание

Если вы запланировали запуск модуля Runbook в течение часа, пропускаемого при переадресации системных часов на один час, время запуска пропускается, а модуль Runbook запускается в следующее запланированное время. Если вы запланировали запуск модуля Runbook в течение часа, который происходит два раза, так как системные часы изменяются назад на один час, runbook запускается два раза.

Примечание

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

Выберите необходимую вкладку, чтобы создать расписание, назначить расписание runbook или удалить расписание из модуля Runbook:

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

  1. В области Connections щелкните правой кнопкой мыши папку Расписания или вложенную папку Расписания, наведите указатель мыши на пункт Создать, а затем выберите Расписание, чтобы открыть диалоговое окно Новое расписание.

  2. На вкладке Общие в поле Имя введите имя расписания.

  3. В поле Описание введите описание, описывающее или объясняющее назначение расписания.

  4. Перейдите на вкладку Сведения . Выберите дни, в которые это расписание позволяет запускать модули Runbook:

    Дни недели. Выберите этот параметр и укажите дни недели, в которые это расписание позволяет запускать модули Runbook.

    Повторение: выберите недели месяца, по которым расписание разрешает выполнение модулей Runbook.

    Дни месяца: выберите этот вариант и задайте дни месяца, по которым расписание разрешает выполнение модулей Runbook. Чтобы указать день месяца введите нужное число. Можно использовать дефисы для указания диапазонов и запятые для разделения записей. Например, ввод 1,3 включает первый и третий день месяца. Ввод 1-21 включает в себя от первого до двадцать первого дня месяца. Можно сочетать оба способа, создавая сложные комбинации дней месяца. Введите все , чтобы указать все дни месяца. Введите последний , чтобы указать последний день месяца.

    Нельзя использовать все и последние как часть диапазона дней. Кроме того, если вы ввели диапазон от 5 до 31, этот диапазон будет правильно работать для всех месяцев, включая 28, 29, 30 и 31 день.

  5. Выберите Часы , чтобы открыть диалоговое окно Расписание часов .

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

    Разрешено (синий переключатель): назначение выбранного периода в качестве времени, когда выполнение модуля Runbook разрешено.

    Запрещено (белый переключатель): назначение выбранного периода в качестве времени, когда выполнение модуля Runbook запрещено.

  7. Щелкните ОК.

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

  9. Нажмите кнопку Добавить , чтобы открыть диалоговое окно Дата .

  10. Укажите дату и выберите Разрешить или Запретить , чтобы разрешить или запретить запуск runbook в этот день, а затем нажмите кнопку ОК. Запись появится в списке.

  11. Чтобы изменить запись исключения, выберите ее и нажмите кнопку Изменить. Чтобы удалить запись Исключение, выберите ее и нажмите кнопку Удалить.

  12. Чтобы изменить расписание, дважды щелкните элемент Расписание.

  13. Чтобы удалить расписание, щелкните элемент Расписаниеправой кнопкой мыши и выберите команду Удалить.

  14. Нажмите кнопку Завершить.

Управление данными с помощью функций

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

Вы управляете данными в runbook путем вставки функции. Функции обработки данных необходимо заключать в квадратные скобки ("[" и "]"). Пример:

[Upper('this will be inserted in upper case')]

При выполнении действия текст "этот текст будет вставлен в верхнем регистре" в примере заменяется на "ЭТОТ ТЕКСТ БУДЕТ ВСТАВЛЕН В ВЕРХНЕМ РЕГИСТРЕ".

В именах функций учитывается регистр. Например, функция Upper('Текст') будет обработана, а функция upper('Текст') — нет.

В таблице ниже перечислены функции, поддерживаемые для модулей Runbook.

Функция и определение Использование Параметры Пример
Upper — преобразование текста в верхний регистр. Upper('Текст') Текст — текст, который преобразуется в верхний регистр. Функция Upper('этот текст будет преобразован в верхний регистр') возвращает строку 'ЭТОТ ТЕКСТ БУДЕТ ПРЕОБРАЗОВАН В ВЕРХНИЙ РЕГИСТР'.
Lower — преобразование текста в нижний регистр. Lower('Текст') Текст — текст, который преобразуется в нижний регистр. Функция Lower('Этот Текст Будет Преобразован В Нижний Регистр') возвращает строку 'этот текст будет преобразован в нижний регистр'.
Field — возвращает текст в определенной позиции. Field('Текст', 'Разделитель', Номер поля) Текст — текст, поиск которого выполняется.

Разделитель — символ, разделяющий поля.

Номер поля — возвращаемое положение поля (начиная с единицы).
Field('Иван;Петров;9055552211', ';', 2) возвращает значение 'Петров'.
Sum — возвращает сумму набора чисел. Sum(первоеЧисло, второеЧисло, третьеЧисло, ...) Номер — добавляемое число. В функцию можно передать любой набор чисел, отделяя каждое запятой (,). Функция Sum(2,3,4,5) возвращает значение '14'.
Инструмент сравнения — возвращает разность двух чисел. Diff(Число1, Число2, <Точность>) Число1 — уменьшаемое.

Число2 — вычитаемое (из Числа1).

Точность <(необязательный> ) — количество десятичных разрядов, до которых будет округлен результат.
Инструмент сравнения(9, 7) возвращает значение '2'

Инструмент сравнения(9.3, 2.1, 2) возвращает значение '7,20'.
Mult — возвращает произведение набора чисел. Mult(первоеЧисло, второеЧисло, третьеЧисло, ...) Число — умножаемое число. В функцию можно передать любой набор чисел, отделяя каждое запятой (,). Функция Mult(2, 3, 4) возвращает значение '24'.
Div — возвращает частное деления двух чисел. Div(Число1, Число2, <Точность>) Число1 — делимое.

Число2 — делитель для Числа1.

Точность <(необязательный> ) — количество десятичных разрядов, до которых будет округлен результат.
Функция Div(8, 4) возвращает значение '2'.

Функция Div(9, 2, 2) возвращает значение '4,50'.
Instr — возвращает позицию первого вхождения текста в другом тексте. Instr ('ТекстПоиска', 'ИскомыйТекст') ТекстПоиска — текст, в котором выполняется поиск.

ИскомыйТекст — текст, который необходимо найти.
Функция Instr('Это искомая строка', 'строка') возвращает значение 11.
Right — возвращение подмножества текста с правой стороны всего текста. Right('Текст', длина) Текст — весь текст.

Длина — число возвращаемых символов с правой стороны.
Функция Right('Текст с правой стороны', 9) возвращает значение 'стороны'.
Left — возвращение подмножества текста с левой стороны всего текста. Left('Текст', Длина) Текст — весь текст.

Длина — число возвращаемых символов с левой стороны.
Функция Left('Текст с левой стороны', 4) возвращает значение 'Текст'.
Mid — возвращение подмножества текста из середины всего текста. Mid('Текст', Начало, Длина) Текст — весь текст.

Начало — начальная позиция в тексте, с которой требуется начать возвращение символов.

Длина — число возвращаемых символов, начиная с начальной позиции.
Функция Mid('Текст из середины', 5, 4) возвращает значение 'из'.
LTrim — обрезка начальных пробелов в тексте. LTrim('Текст') Текст — текст, в котором обрезаются начальные пробелы LTrim(' Удалить только ведущие пробелы. ') возвращает значение "Удалить только пробелы в начале. '
RTrim — обрезка конечных пробелов в тексте. RTrim('Текст') Текст — текст, в котором обрезаются конечные пробелы RTrim(' Удалить только конечные пробелы. ') возвращает значение "Удалить только конечные пробелы".
Trim — обрезка начальных и конечных пробелов в тексте. Trim('Текст') Текст — текст, в котором выполняется обрезка пробелов. Trim(' Удалить начальные и конечные пробелы. ') возвращает значение "Удалить начальные и конечные пробелы".
Len — возвращение длины текста. Len('Текст') Текст — текст, длина которого измеряется. Функция Len('Измерить этот текст') возвращает значение 17.

Примечание

В именах функций учитывается регистр. Например, функция Upper('Текст') будет обработана, а функция upper('Текст') — нет.

Next Steps

Пошаговое руководство по созданию примера runbook см. в статье Создание и тестирование примера модуля Runbook.