Puncte:0

Opriți/porniți mașinile virtuale Azure folosind Hybrid Runbook

drapel cn

Î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,

Ken W MSFT avatar
drapel gb
Puteți posta runbook-ul? Se pare că porniți în serie, motiv pentru care durează atât de mult. Ar trebui să te uiți la rularea în paralel. Iată un exemplu https://albandrodsmemory.com/2020/10/13/start-and-stop-azure-vms-in-parallel/
jrd1989 avatar
drapel cn
Tocmai am adăugat runbook-ul în postarea inițială. Mulțumesc pentru împărtășirea acestui articol, va trebui să văd dacă pot aplica. Avem 11 vm-uri afectate de acest runbook. Este un amestec de DB, aplicații și servere web. Unele servicii durează mai mult să pornească, așa că de aceea avem o pauză de 4 minute între executarea următoarei cmd de pornire. Anumite VM-uri depind de altele, așa că dorim suficient timp pentru ca o VM să pornească și să funcționeze serviciile.
Ken W MSFT avatar
drapel gb
Dacă mașinile trebuie pornite în ordine, vă puteți uita la acest runbook pentru inspirație. https://docs.microsoft.com/en-us/azure/devtest-labs/start-machines-use-automation-runbooks#:~:text=%20Start%20virtual%20machines%20in%20a%20lab%20in, to%20add%20a%20runbook%20to%20the...%20More%20

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.