Рейтинг:0

Остановка и запуск виртуальных машин Azure с помощью гибридного модуля Runbook

флаг cn

В настоящее время у меня есть модули 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

    }

}

Спасибо,

Ken W MSFT avatar
флаг gb
Можете ли вы опубликовать runbook? Кажется, что вы запускаете старт последовательно, поэтому это занимает так много времени. Вы должны посмотреть на его параллельное выполнение. Вот пример https://albandrodsmemory.com/2020/10/13/start-and-stop-azure-vms-in-parallel/
jrd1989 avatar
флаг cn
Я просто добавил runbook в начальный пост. Спасибо, что поделились этой статьей, мне нужно посмотреть, можно ли ее применить. Этот модуль Runbook затронул 11 виртуальных машин. Это смесь БД, приложений и веб-серверов. Некоторым службам требуется больше времени для запуска, поэтому у нас есть 4-минутная пауза между выполнением следующей команды запуска. Некоторые виртуальные машины зависят от других, поэтому нам нужно достаточно времени для запуска виртуальной машины и запуска служб.
Ken W MSFT avatar
флаг gb
Если компьютеры необходимо запускать по порядку, вы можете просмотреть этот модуль Runbook для вдохновения. https://docs.microsoft.com/en-us/azure/devtest-labs/start-machines-use-automation-runbooks#:~:text=%20Start%20virtual%20machines%20in%20a%20lab%20in, в%20добавить%20a%20runbook%20в%20...%20Дополнительно%20

Ответить или комментировать

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