În prezent, am runbook-uri care opresc/pornesc VM-urile într-un program, dar recent runbook pentru a porni vms este oprit deoarece durează prea mult pentru finalizare. Următorul mesaj este aruncat -
"Lucrarea a fost oprită pentru că a atins limita echitabilă de execuție a lucrării mai mult de 3 ore. Pentru lucrări de lungă durată, se recomandă utilizarea unui Hybrid Runbook Worker. Hybrid Runbook Workers nu au o limitare în ceea ce privește durata de execuție a unui runbook."
Nu am folosit niciodată un runbook hibrid înainte, așa că iată întrebarea mea - poate fi folosit un runbook hibrid pentru a opri/porni mai multe VM-uri Azure? Nu am reușit să găsesc nimic despre asta, se pare că abordarea hibridă este folosită pentru a extrage informații sau pentru a efectua operațiuni în interiorul VM.
În cele din urmă caut să gestionați resursele VM (oprire/pornire VM) de la într-un VM Azure dacă este posibil. Vedeți runbookul curent mai jos:
Ieșire de scriere „------------------------ Autentificare --------------------- ---"
Ieșire de scriere „Conectare la Azure...”
$ConnectionName = „AzureRunAsConnection”
încerca
{
# Obțineți conexiunea „AzureRunAsConnection”
$Conn = Get-AutomationConnection -Name $ConnectionName
# Conectarea la Azure
Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
Ieșire de scriere „Conectat cu succes la Azure”.
}
captură
{
dacă (!$Conn)
{
$ErrorMessage = "Conexiune $ConnectionName nu a fost găsită."
arunca $ErrorMessage
}
altfel
{
Scriere-Eroare -Mesaj $_.Excepție
arunca $_.Exceptie
}
}
Ieșire de scriere „------------------------ Pornirea mașinilor virtuale -------------------- -----"
## VM-urile secvențe sunt pornite
$Computer = @(
„mașini virtuale (x11)”
)
foreach($c în $Computers)
{
$AzResource = Get-AzResource -Name $c -ResourceType „Microsoft.Compute/virtualMachines”
if($null -ne $AzResource)
{
Ieșire de scriere „Se pornește mașina virtuală...” + $c
Start-AzVM -ResourceGroupName $AzResource.ResourceGroupName -Name $c
# Se întrerupe cu 4 minute înainte de a continua bucla
Start-Sleep -Secunde 240
}
altfel
{
throw „Mașina virtuală nu a fost găsită:” + $c
}
}
Mulțumiri,