Упрощение разработки runbook service Management Automation с помощью глобальных ресурсов
Важно!
Поддержка этой версии service Management Automation (SMA) завершена. Рекомендуется выполнить обновление до SMA 2022.
Глобальные ресурсы доступны для всех модулей Runbook в среде автоматизации. Их можно создавать и настраивать либо в рабочей области автоматизации на портале управления, либо с помощью соответствующих командлетов в Windows PowerShell. В runbook можно получать и задавать значения для глобальных активов с помощью действий в модуле RunbookConstructs . Командлеты Windows PowerShell доступны для использования в модулях Runbook в Service Management Automation, но рекомендуется использовать эти действия, так как они более эффективны, так как они не должны работать через веб-службу автоматизации.
Получение или настройка учетных данных
Учетные данные автоматизации — это имена пользователей и пароли, которые можно использовать в командах Windows PowerShell или в сертификате, отправленном на сервер. Свойства учетных данных безопасно хранятся в базе данных службы автоматизации и могут быть доступны в модуле runbook с помощью действия Get-AutomationPSCredential или Get-AutomationCertificate .
PowerShell для управления учетными данными
Командлеты, приведенные в следующей таблице, можно использовать для создания учетных данных и управления ими с помощью Windows PowerShell в Service Management Automation.
Командлеты | Описание |
---|---|
Get-SmaCertificate | Извлекает сертификат службы автоматизации. |
Get-SmaCredential | Извлекает учетные данные PowerShell службы автоматизации. |
Remove-SmaCertificate | Удаляет сертификат службы автоматизации. |
Remove-SmaCredential | Удаляет учетные данные PowerShell службы автоматизации. |
Set-SmaCertificate | Создает новый сертификат или задает свойства для существующего сертификата, включая отправку файла сертификата и назначение пароля для PFX-файла. |
Set-SmaCredential | Создает новые учетные данные PowerShell службы автоматизации или задает свойства существующих учетных данных. |
PowerShell для работы с учетными данными
Действия, приведенные в следующей таблице, можно использовать для доступа к учетным данным в runbook.
Действия | Описание |
---|---|
Get-AutomationCertificate | Получает сертификат для использования в модуле Runbook. |
Get-AutomationPSCredential | Получает имя пользователя и пароль для использования в модуле Runbook. |
Примечание
Не следует использовать переменные в параметре Name командлетов Get-AutomationPSCredential и Get-AutomationCertificate , так как это может усложнить обнаружение зависимостей между модулями Runbook и переменными службы автоматизации.
Создание учетных данных PowerShell на портале управления
Выберите рабочую область Автоматизация.
В верхней части окна выберите Активы.
В нижней части окна выберите Добавить параметр.
Выберите Добавить учетные данные.
В раскрывающемся списке Тип учетных данных выберите Учетные данные PowerShell.
Введите имя учетных данных в поле Имя .
Щелкните стрелку вправо.
Введите значения для каждого свойства.
Выберите метку проверка, чтобы сохранить учетные данные.
Создайте сертификат в
Портал управления
Выберите рабочую область Автоматизация.
В верхней части окна выберите Активы.
В нижней части окна выберите Добавить параметр.
Выберите Добавить учетные данные.
В раскрывающемся списке Тип учетных данных выберите Сертификат.
Введите имя сертификата в поле Имя .
Щелкните стрелку вправо.
Выберите Обзор для файла и перейдите к .cer или PFX-файлу.
Если выбран PFX-файл, укажите для него пароль.
Выберите метку проверка, чтобы сохранить сертификат.
Создание учетных данных с помощью PowerShell
В приведенных ниже примерах команд показано, как создать новые учетные данные.
$webServer = 'https://MyWebServer'
$port = 9090
$credName = 'MyCredential'
$user = 'contoso\MyUser'
$pwd = ConvertTo-SecureString -String 'P@$$w0rd' -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$pwd
Set-SmaCredential -WebServiceEndpoint $webServer -port $port -Name $credName -Value $cred
Создание сертификата PowerShell с помощью Windows PowerShell в Service Management Automation
В приведенных ниже примерах команд показано, как создать сертификат путем импорта файла сертификата.
$webServer = 'https://MyWebServer'
$port = 9090
$certName = 'MyCertificate'
$path = 'c:\certs\MyCertificate.pfx'
$certPwd = ConvertTo-SecureString -String 'P@$$w0rd' -AsPlainText -Force
Set-SmaCertificate -WebServiceEndpoint $webServer -port $port -Name $certName -Path $certPath -Password $certPwd
Использование учетных данных PowerShell в runbook
Учетные данные PowerShell можно вернуть в модуль с помощью команды Get-AutomationPSCredential . Будет возвращен объект PSCredential, который можно использовать в рабочем процессе.
Команды в приведенном ниже примере демонстрируют использование учетных данных PowerShell в Runbook. В этом примере учетные данные используются с действием InlineScript для запуска набора команд с использованием альтернативных учетных данных.
$myCredential = Get-AutomationPSCredential -Name 'MyCredential' InlineScript { <Commands> } -PSComputerName $ServerName -PSCredential $myCredential
Управление подключениями SMA
Подключение автоматизации содержит сведения, необходимые для подключения к серверу или к приложению из модуля runbook. Эта информация определяется в модуле для приложения и обычно включает такие сведения, как имя пользователя и пароль, а также компьютер для подключения. Также могут потребоваться другие сведения, например сертификат или идентификатор подписки. Свойства подключения безопасно хранятся в базе данных службы автоматизации и могут быть доступны в runbook с помощью действия Get-AutomationConnection .
Командлеты Windows PowerShell
Вы можете создавать учетные данные и управлять ими с помощью командлетов Windows PowerShell, приведенных в следующей таблице.
Командлеты | Описание |
---|---|
Get-SmaConnection | Возвращает значения для каждого поля в определенном подключении. |
Get-SmaConnectionField | Возвращает определения полей для определенного типа подключения. |
Get-SmaConnectionType | Возвращает доступные типы подключений. |
New-SmaConnection | Создает новое подключение. |
Remove-SmaConnection | Удаляет существующее подключение. |
Set-SmaConnectionFieldValue | Задает значение определенного поля для существующего подключения. |
Действия Runbook
Вы можете получить доступ к подключениям в runbook с помощью действий, приведенных в следующей таблице.
Действия | Описание |
---|---|
Get-AutomationConnection | Получает подключение для использования в модуле Runbook. |
Создание подключения на портале управления
Выберите рабочую область Автоматизация.
В верхней части окна выберите Активы.
В нижней части окна выберите Добавить параметр.
Щелкните Добавить подключение.
В раскрывающемся списке Тип подключения выберите тип подключения.
Введите имя подключения в поле Имя .
Щелкните стрелку вправо.
Введите значение для каждого свойства.
Выберите метку проверка, чтобы сохранить подключение.
Создание подключения с помощью Windows PowerShell
В приведенных ниже примерах команд создается подключение Virtual Machine Manager с именем MyVMMConnection.
Примечание
Мы используем хэш-таблицу для определения свойств соединения. Это необходимо потому, что для разных типов подключения требуются разные наборы свойств. Для подключения другого типа будет использоваться другой набор значений полей.
Дополнительные сведения о хэш-таблицах см. здесь.
$webServer = 'https://MyWebServer'
$port = 9090
$connectionName = 'MyConnection'
$fieldValues = @{"Username"="MyUser";"Password"="password";"ComputerName"="MyComputer"}
New-SmaConnection -WebServiceEndpoint $webServer -port $port -Name $connectionName -ConnectionTypeName "VirtualMachineManager" -ConnectionFieldValues $fieldValues
Использование подключения в runbook
Используйте командлет Get-AutomationConnection для подключения в модуле Runbook. Это действие извлекает значения различных полей в соединении и возвращает их в виде хэш-таблицы, которую затем можно использовать с соответствующими командами в runbook.
Дополнительные сведения о хэш-таблицах см. здесь.
В следующем примере кода показано, как использовать подключение для предоставления имени компьютера и учетных данных для блока InlineScript , который запускает команды на другом компьютере.
$con = Get-AutomationConnection -Name 'MyConnection'
$securepassword = ConvertTo-SecureString -AsPlainText -String $con.Password -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $con.Username, $securepassword
InlineScript {
<Commands>
} -PSComputerName $con.ComputerName -PSCredential $cred
Упрощение разработки runbook с помощью глобальных переменных
Переменные автоматизации — это значения, доступные для всех модулей Runbook. Их можно создавать, изменять и извлекать на портале управления, Windows PowerShell или из модуля Runbook. Переменные автоматизации полезны в следующих случаях:
Совместное использование значения несколькими модулями Runbook.
Совместное использование значения несколькими заданиями из одного модуля Runbook.
Управление значением на портале управления или из командной строки Windows PowerShell, которая используется модулями Runbook.
Переменные службы автоматизации сохраняются, чтобы они по-прежнему были доступны даже в случае сбоя модуля Runbook. Это также позволяет задать значение для одного модуля Runbook, который затем используется другим или используется тем же runbook при следующем запуске.
При создании переменной необходимо указать его тип данных из следующего списка. Это позволяет порталу управления отображать соответствующий элемент управления для значения переменной. Переменной можно назначить только значение соответствующего типа.
Строка
Целое число
Логическое
Datetime
При создании переменной можно указать, что она должна храниться в зашифрованном виде. Если переменная зашифрована, она безопасно хранится в базе данных SMA, и ее значение невозможно получить из командлета Get-SmaVariable . Единственный способ, которым можно вернуть зашифрованную переменную, — с помощью командлета Get-AutomationVariable в модуле Runbook. Вы можете сохранить несколько значений определенного типа в одной переменной, создав хэш-таблицу.
Командлеты Windows PowerShell
Вы можете создавать переменные и управлять ими с помощью командлетов Windows PowerShell, приведенных в следующей таблице.
Командлеты | Описание |
---|---|
Get-SmaVariable | Получает значение существующей переменной. |
Set-SmaVariable | Создает новую переменную или задает значение для существующей переменной. |
Действия Runbook
Вы можете получить доступ к переменным в runbook с помощью действий, приведенных в следующей таблице.
Действия | Описание |
---|---|
Get-AutomationVariable | Получает значение существующей переменной. |
Set-AutomationVariable | Получает значение существующей переменной. |
Примечание
Не следует использовать переменные в параметре Name Get-AutomationVariable так как это может усложнить обнаружение зависимостей между модулями Runbook и переменными службы автоматизации.
Создание переменной на портале управления
Выберите рабочую область Автоматизация.
В верхней части окна выберите Активы.
В нижней части окна выберите Добавить параметр.
Выберите Добавить переменную.
В раскрывающемся списке Тип выберите тип данных.
Введите имя переменной в поле Имя .
Щелкните стрелку вправо.
Введите значение переменной и укажите, следует ли ее зашифровать.
Выберите метку проверка, чтобы сохранить новую переменную.
Создание переменной с помощью Windows PowerShell
Командлет Set-SmaVariable создает новую переменную и задает значение для существующей переменной. В приведенных ниже примерах команд показано, как создать переменную строкового типа.
$web = 'https://MySMAServer'
$port = 9090
Set-SMAVariable -WebServiceEndpoint $web -Port $port -Name 'MyVariable' -Value 'My String'
Использование переменной в runbook
В следующем примере кода показано, как задать и вернуть переменную в модуле Runbook. В этом примере предполагается, что переменные типа integer с именами NumberOfIterations и NumberOfRunnings и переменная типа string с именем SampleMessage уже созданы.
$NumberOfIterations = Get-AutomationVariable -Name 'NumberOfIterations' $NumberOfRunnings = Get-AutomationVariable -Name 'NumberOfRunnings' $SampleMessage = Get-AutomationVariable -Name 'SampleMessage' Write-Output "Runbook has been run $NumberOfRunnings times." for ($i = 1; $i -le $NumberOfIterations; $i++) { Write-Output "$i`: $SampleMessage" } Set-AutomationVariable -Name NumberOfRunnings -Value (NumberOfRunnings += 1)
Дальнейшие действия
- Узнайте о создании модуля интеграции.
- Узнайте о создании модулей Runbook автоматизации.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по