В настоящее время у меня есть модули Runbook, которые останавливают и запускают виртуальные машины по расписанию, но недавно Runbook для запуска vms останавливается, потому что это занимает слишком много времени. Выдается следующее сообщение -
"Задание было остановлено, так как оно достигло справедливого предела выполнения задания более 3 часов. Для длительных заданий рекомендуется использовать гибридную рабочую роль Runbook. Гибридные рабочие роли Runbook не имеют ограничений на время выполнения модуля Runbook."
я никогда не использовал гибридный модуль Runbook прежде чем вот мой вопрос: можно ли использовать гибридный модуль Runbook для остановки/запуска нескольких виртуальных машин Azure? Мне ничего не удалось найти по этому поводу, похоже, гибридный подход используется для извлечения информации или выполнения операций внутри виртуальной машины.
Я в конечном итоге ищу управлять ресурсами ВМ (остановить/запустить виртуальные машины) из внутри виртуальной машины Azure если возможно. См. текущий модуль Runbook ниже:
Write-Output "----------------------- Аутентификация --------------------- ---"
Запись-вывод "Вход в Azure..."
$ConnectionName = "AzureRunAsConnection"
пытаться
{
# Получить соединение "AzureRunAsConnection"
$Conn = Get-AutomationConnection -Name $ConnectionName
# Вход в Azure
Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
Запись-вывод «Успешный вход в Azure».
}
ловить
{
если (!$Конн)
{
$ErrorMessage = "Соединение $ConnectionName не найдено."
бросить $ErrorMessage
}
еще
{
Сообщение об ошибке записи $_.Exception
выбросить $_.Исключение
}
}
Write-Output "------------------------------------- Запуск виртуальных машин ------------------- -----"
## Виртуальные машины последовательности запущены
$Компьютеры = @(
'виртуальные машины (x11)'
)
foreach($c в $Computers)
{
$AzResource = Get-AzResource -Name $c -ResourceType "Microsoft.Compute/virtualMachines"
если($null-ne $AzResource)
{
Запись-вывод "Запуск виртуальной машины..." + $c
Start-AzVM -ResourceGroupName $AzResource.ResourceGroupName -Name $c
# Пауза за 4 минуты до продолжения цикла
Старт-Сон-Секунды 240
}
еще
{
throw «Виртуальная машина не найдена:» + $c
}
}
Спасибо,