Создание последовательностей runbook для Service Management Automation

Важно!

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

Runbook в Service Management Automation и службе автоматизации Microsoft Azure являются рабочими процессами Windows PowerShell или скриптами PowerShell. Они обеспечивают возможность автоматизации административных процессов развертывания и управления облачными серверами и других функций, которые могут выполнять сценарии Windows PowerShell.

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

Дополнительные службы, предоставляемые в Automation для работы с рабочими процессами Windows PowerShell, включают следующие:

  • Централизованное хранение модулей Runbook и управление ими.

  • Масштабируемая архитектура для планирования и запуска модулей Runbook.

  • глобальные ресурсы, поддерживающие централизованное управление и доступные для всех модулей Runbook;

  • пользовательский интерфейс для разработки и тестирования модулей Runbook;

  • набор командлетов для запуска модулей Runbook и управления ими.

Создание или импорт runbook

Модуль Runbook можно добавить в Service Management Automation, создав его на портале управления или импортировав из файла.

Создание runbook на портале управления

  1. На портале управления выберите Создать, Службы приложений, Автоматизация, Runbook, Быстрое создание.

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

  3. Если вы хотите изменить модуль Runbook сейчас, выберите Изменить модуль Runbook. В противном случае нажмите кнопку ОК.

  4. Новый модуль Runbook появится во вкладке Модули Runbook.

Импорт runbook из файла

  1. Выберите на портале управления пункт Автоматизация , а затем "Учетная запись автоматизации".

  2. Выберите Импортировать.

  3. Нажмите кнопку Обзор для параметра Файл и найдите файл скрипта для импорта.

  4. Если вы хотите изменить модуль Runbook, выберите Изменить модуль Runbook. В противном случае нажмите кнопку ОК.

  5. Новый модуль Runbook появится во вкладке Модули Runbook.

Импорт runbook из файла скрипта с помощью Windows PowerShell

Чтобы создать модуль Runbook из файла сценария, содержащего рабочий процесс, можно использовать командлет Import-SmaRunbook .

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

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$scriptPath = "c:\runbooks\Test-Runbook.ps1"

Import-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Path $scriptPath
Publish-SMARunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName

Редактирование Runbook

Каждый модуль Runbook в Service Management Automation имеет две версии: Черновая и Опубликованная. Вы изменяете черновую версию рабочего процесса, а затем публикуете ее, чтобы ее можно было выполнить. Опубликованную версию изменить нельзя.

Редактирование runbook с помощью портала управления

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

  1. На портале управления выберите пункт Автоматизация.

  2. Выберите вкладку Модули Runbook.

  3. Выберите имя модуля Runbook, который вы хотите изменить.

  4. Выберите вкладку Автор.

  5. Выберите Черновик в верхней части экрана или кнопку Изменить в нижней части экрана.

  6. Внесите необходимые изменения.

  7. По завершении редактирования нажмите кнопку Сохранить .

  8. Выберите Опубликовать , чтобы опубликовать последнюю черновую версию модуля Runbook.

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

Чтобы вставить код в модуль Runbook, выполните следующие действия:

  1. Откройте модуль Runbook в редакторе портала управления.

  2. В нижней части экрана нажмите кнопку Вставить , а затем — Runbook.

  3. Выберите модуль Runbook для вставки из центрального столбца и щелкните стрелку вправо.

  4. Если модуль Runbook содержит параметры, они будут указаны.

  5. Нажмите кнопку проверка.

  6. Код для запуска выбранного модуля Runbook будет вставлен в текущий модуль Runbook.

  7. Если для модуля Runbook требуются параметры, укажите соответствующее значение вместо типа данных, заключенного в фигурные скобки <>.

Изменение runbook службы автоматизации с помощью PowerShell

Чтобы внести изменения в модуль Runbook с помощью Windows PowerShell, отредактируйте рабочий процесс, используя любой редактор, и сохраните его в PS1-файл. Можно использовать командлет Get-SMARunbookDefinition для возврата содержимого модуля Runbook, а затем командлет Edit-SMARunbook для замены существующего черновика рабочего процесса измененным.

Возврат содержимого runbook с помощью Windows PowerShell

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

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$scriptPath = "c:\runbooks\Test-Runbook.ps1"

$runbookDefinition = Get-SMARunbookDefinition -WebServiceEndpoint $webServer -Port $port -Name $runbookName -Type Draft
$runbookContent = $runbookDefinition.Content

Out-File -InputObject $runbookContent -FilePath $scriptPath

Изменение содержимого runbook с помощью Windows PowerShell

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

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$scriptPath = "c:\runbooks\Test-Runbook.ps1"

Edit-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName -Path $scriptPath -Overwrite
Publish-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName -Path $scriptPath

Изменение runbook службы автоматизации с помощью ISE PowerShell

Интегрированная среда скриптов (ISE) Windows PowerShell — это приложение, позволяющее выполнять команды, а также запись, тестирование и отладку скриптов. Надстройка ISE PowerShell для SMA позволяет вам применять это средство для записи и тестирования runbook службы автоматизации.

  1. Откройте интегрированную среду сценариев Windows PowerShell.

  2. Если надстройка SMA ISE не отображается в правой части ise, откройте меню Надстройки и включите надстройку SMA ISE.

  3. Выполните вход в SMA на вкладке Конфигурация.

  4. Выберите вкладку Runbook . Вы увидите список модулей Runbook SMA.

  5. Выберите модуль Runbook, который вы хотите изменить, и нажмите кнопку Скачать. Будет скачана локальная копия runbook из SMA.

  6. Выберите Открыть. В результате создается новая вкладка с runbook.

  7. Внесите в runbook необходимые изменения.

  8. Выберите Отправить черновик , чтобы отправить модуль Runbook в SMA. Существующая черновая версия runbook будет перезаписана.

  9. Выберите Опубликовать черновик , чтобы опубликовать последнюю черновую версию модуля Runbook.

Публикация runbook

После создания runbook необходимо опубликовать его, чтобы рабочая роль Runbook вела его выполнение. Каждая последовательность runbook в Service Management Automation имеет две версии: черновая и опубликованная. Запустить можно только опубликованную версию, а изменить — только черновую. Изменения, внесенные в черновик, не влияют на опубликованную версию. Когда вы будете готовы сделать черновую версию доступной, опубликуйте ее, что перезаписывает опубликованную версию черновиками.

Публикация runbook с помощью портала управления

  1. Выберите рабочую область Автоматизация.

  2. В верхней части экрана выберите Модули Runbook.

  3. Найдите редактируемый модуль Runbook и щелкните его имя.

  4. В верхней части экрана выберите Автор.

  5. Выберите Черновик.

  6. В нижней части экрана выберите Опубликовать.

  7. Выберите Да в сообщении проверки.

Публикация runbook с помощью PowerShell

Для публикации модуля Runbook в Windows PowerShell можно использовать командлет Publish-SmaRunbook. Приведенные ниже примеры команд демонстрируют публикацию модуля Runbook.

$webServer = 'https://MyServer'
$port = 9090
$runbookPath = 'c:\runbooks\Sample-TestRunbook.ps1'
$runbookName = 'Test-Runbook'

Publish-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName

Публикация runbook с помощью ISE PowerShell

Интегрированная среда скриптов (ISE) Windows PowerShell — это приложение, позволяющее выполнять команды, а также запись, тестирование и отладку скриптов. Надстройка ISE PowerShell для SMA позволяет вам применять это средство для записи и тестирования runbook службы автоматизации.

  1. Откройте интегрированную среду сценариев Windows PowerShell.

  2. Если надстройка SMA ISE не отображается в правой части isE, откройте меню Надстройки и включите надстройку SMA ISE.

  3. Выполните вход в SMA на вкладке Конфигурация.

  4. Перейдите на вкладку Runbook . Вы увидите список модулей Runbook SMA.

  5. Выберите модуль Runbook и выберите Опубликовать черновик , чтобы опубликовать последнюю черновую версию модуля Runbook.

Тестирование runbook

Черновик runbook можно протестировать в Service Management Automation, не изменяя при этом опубликованную версию. Это позволяет проверить правильность работы Runbook перед заменой опубликованной версии.

При тестировании Runbook исполняется черновой Runbook и выполняются все его действия. Журнал заданий не создается, но потоки Output и Warning and Error отображаются тестовой области вывода. Сообщения в Verbose Stream отображаются в области вывода, только если для $VerbosePreference variable задано значение Continue.

При тестировании runbook выполняет рабочий процесс как обычно, а все действия — в ресурсах в среде. По этой причине модули Runbook следует тестировать только в нерабочих ресурсах.

Тестирование runbook в Service Management Automation

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

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

Тестирование runbook с помощью ISE PowerShell

Надстройка ISE PowerShell предоставляет командлеты, которые эмулируют стандартные действия, например Get-SMACredential и Set-SMAVariable, поэтому вы можете протестировать runbook на локальном компьютере как любой другой скрипт.

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

Чтобы протестировать модуль Runbook в SMA, выберите Тестировать черновик в SMA. Откроется новое окно. Выберите Запустить новое задание , чтобы запустить тест. В окне отобразятся выходные данные.

Примеры runbook службы автоматизации

Следующие runbook поставляются с Service Management Automation как примеры runbook для иллюстрации методик и рекомендаций. Они доступны для использования в расширении службы автоматизации в Microsoft Azure Pack для Windows Server.

Имя Runbook Описание
Sample-Deleting-VMCloud-Subscription Демонстрирует полезный сценарий запуска модуля Runbook при удалении пользователем подписки на облака виртуальных машин.
Sample-Managing-Azure Показано, как подключиться к подписке Microsoft Azure и выполнить основные операции с помощью модуля Microsoft Azure PowerShell.
Sample-Managing-ConfigurationManager Демонстрирует возможность подключения Service Management Automation к Configuration Manager.
Sample-Managing-DataProtectionManager Демонстрирует подключение к серверу Data Protection Manager (DPM) и просмотр сведений о дисках, найденных на сервере DPM.
Sample-Managing-MySQLServers Демонстрирует процесс получения токена безопасности, который затем будет использоваться для получения списка серверов узла.
Sample-Managing-OperationsManager Демонстрирует возможность подключения Service Management Automation к System Center Operations Manager.
Sample-Managing-Orchestrator Показано, как подключиться к System Center Orchestrator и запустить runbook Orchestrator, чтобы использовать существующую инфраструктуру.
Sample-Managing-Plans Демонстрирует создание нового плана и добавление службы SQL Server с заданной квотой в новый план.
Sample-Managing-ServiceBusClouds Демонстрирует подключение к серверу облака шины обслуживания и просмотра сведений о созданных пространствах имен.
Sample-Managing-SQLServers Демонстрирует создание новой группы серверов и добавление сервера размещения SQL.
Sample-Managing-UserAccounts Демонстрирует, как создать пользователя в Microsoft Azure Pack для Windows Server, который будет создан в Microsoft Azure Pack и появится на портале управления для расширения Пользователи для администраторов. Однако этот пользователь также должен быть интегрирован в поставщик проверки подлинности (например, AuthSite) для доступа к порталу управления для клиентов, который не включен в этот пример.
Sample-Managing-VirtualMachineManager Демонстрирует подключение к серверу Virtual Machine Manager (VMM) и просмотр сведений о лицензии сервера VMM.
Sample-Managing-VMClouds Демонстрирует получение доступа к сведениям о подключении к базе данных сервера Service Provider Foundation и сведениям об объектах сервера VMM, управляемых Service Provider Foundation.
Sample-Managing-WebSiteCloud Демонстрирует подключение к серверу контроллера облака веб-сайта и просмотр сведений о развернутых серверах облака веб-сайта.
Sample-Modify-VMCloud-Subscription Демонстрирует полезный сценарий запуска модуля Runbook, когда клиент или администратор приостанавливает или активирует подписку на облака виртуальных машин.
Sample-Using-Activities Демонстрирует возможности Service Management Automation по использованию действий.
Sample-Using-Checkpoints Демонстрирует возможность использования контрольных точек в Service Management Automation.
Sample-Using-Connections Демонстрирует возможность Service Management Automation по использованию подключений к удаленным системам.
Sample-Using-Credentials Демонстрирует возможность Service Management Automation по использованию учетных данных и выводит данные о пользователе, от имени которого Service Management Automation выполняет runbook. Затем он подключается к серверу "ServerName" и выводит сведения о пользователе, получающем доступ к серверу, которому принадлежат учетные данные "SampleCredential".
Sample-Using-Modules Демонстрирует импорт модулей в Runbook и выводит число уже импортированных модулей для сервера "ServerName". Затем он импортирует модуль, указанный параметром "ModulePath", и выводит число новых модулей и сведения, связанные с импортируемым модулем.
Sample-Using-RunbookParameters Демонстрирует использование входных параметров для модулей Runbook, а также указывает, являются ли эти параметры обязательными, предоставляет значения параметров по умолчанию и использует значения параметров позднее в рабочем процессе.
Sample-Using-Runbooks Демонстрирует вызов модуля Runbook из другого модуля Runbook.
Sample-Using-SuspendWorkflow Демонстрирует принудительную приостановку модуля Runbook. Это может быть полезно, если перед продолжением runbook требуется выполнить ручной шаг, например получить утверждение о выходе от определенного пользователя. После завершения ручного действия работа приостановленного модуля Runbook будет возобновлена вручную.
Sample-Using-Variables Демонстрирует возможность Service Management Automation по использованию переменных.
Sample-Using-VMCloud-Automation Демонстрирует полезный сценарий запуска модуля Runbook при запуске события Service Provider Foundation.

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

  • Узнайте, как вызвать одну последовательность runbook из другой.
  • Узнайте, как работать с модулями интеграции.