Score:0

หยุด/เริ่ม Azure VM โดยใช้ Hybrid Runbook

ธง cn

ขณะนี้ฉันมี runbooks ที่หยุด / เริ่ม VM ตามกำหนดเวลา แต่เมื่อเร็ว ๆ นี้ หนังสือวิ่ง เพื่อเริ่ม vms หยุดทำงานเนื่องจากใช้เวลานานเกินไปในการดำเนินการให้เสร็จสิ้น ข้อความต่อไปนี้ถูกโยน -

"งานถูกหยุดเนื่องจากถึงขีดจำกัดส่วนแบ่งที่ยุติธรรมของการปฏิบัติงานมากกว่า 3 ชั่วโมง สำหรับงานที่ต้องใช้เวลานาน ขอแนะนำให้ใช้ Hybrid Runbook Worker Hybrid Runbook Worker ไม่มีข้อจำกัดเกี่ยวกับระยะเวลาที่ runbook สามารถดำเนินการได้"

ฉันไม่เคยใช้ runbook ไฮบริด ก่อนหน้านี้คือคำถามของฉัน - สามารถใช้ runbook แบบไฮบริดเพื่อหยุด / เริ่ม Azure VM หลายตัวได้หรือไม่ ฉันไม่พบสิ่งใดเกี่ยวกับสิ่งนี้ ดูเหมือนว่าวิธีการแบบไฮบริดจะใช้เพื่อดึงข้อมูลหรือดำเนินการภายใน VM

ในที่สุดฉันก็มองหา จัดการทรัพยากร VM (หยุด/เริ่ม VM) จาก ภายใน Azure VM ถ้าเป็นไปได้. ดู runbook ปัจจุบันด้านล่าง:

การเขียนเอาต์พุต "------------------------ การรับรองความถูกต้อง --------------------- ---"
เขียนเอาต์พุต "เข้าสู่ระบบ Azure ... "

$ConnectionName = "AzureRunAsConnection"

พยายาม 
{
    # รับการเชื่อมต่อ "AzureRunAsConnection "
    $Conn = Get-AutomationConnection - ชื่อ $ConnectionName

    #เข้าสู่ระบบ Azure
    Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint 

    เขียนเอาต์พุต "ลงชื่อเข้าใช้ Azure สำเร็จ" 
}

จับ
{
    ถ้า (!$Conn)
    {
        $ErrorMessage = "ไม่พบการเชื่อมต่อ $ConnectionName"
        โยน $ErrorMessage
    } 
    อื่น
    {
        ข้อผิดพลาดในการเขียน - ข้อความ $_.Exception
        โยน $_.Exception
    }

}

การเขียนเอาต์พุต "------------------------ การเริ่มต้นเครื่องเสมือน ------------------- -----"


## Sequence VM เริ่มต้นขึ้นแล้ว

$คอมพิวเตอร์ = @(

 'เครื่องเสมือน (x11)'

)


foreach($c ใน $คอมพิวเตอร์)

{

    $AzResource = Get-AzResource -ชื่อ $c -ResourceType "Microsoft.Compute/virtualMachines"

    ถ้า($null -ne $AzResource)

    { 

        เขียนเอาต์พุต "กำลังเริ่มเครื่องเสมือน..." + $c

       
        Start-AzVM -ResourceGroupName $AzResource.ResourceGroupName -ชื่อ $c

 
        # หยุด 4 นาทีก่อนวนซ้ำ

        Start-Sleep - วินาที 240

    }  

    อื่น

    {

        โยน "ไม่พบเครื่องเสมือน:" + $c

    }

}

ขอบคุณ,

Ken W MSFT avatar
gb flag
คุณสามารถโพสต์ runbook? ดูเหมือนว่าคุณกำลังเริ่มต้นแบบอนุกรมซึ่งเป็นสาเหตุที่ใช้เวลานานมาก คุณควรดูที่การทำงานแบบขนาน นี่คือตัวอย่าง https://albandrodsmemory.com/2020/10/13/start-and-stop-azure-vms-in-parallel/
jrd1989 avatar
cn flag
ฉันเพิ่งเพิ่ม runbook ในโพสต์เริ่มต้น ขอบคุณที่แบ่งปันบทความนี้ ฉันจะต้องดูว่ามันเป็นสิ่งที่ฉันสามารถนำไปใช้ได้หรือไม่ เรามี 11 vm ที่ได้รับผลกระทบจาก runbook นี้ เป็นการผสมผสานระหว่างฐานข้อมูล แอป และเว็บเซิร์ฟเวอร์ บริการบางอย่างใช้เวลานานกว่าในการเริ่มต้น ด้วยเหตุนี้เราจึงหยุดชั่วคราว 4 นาทีระหว่างการดำเนินการเริ่มต้น cmd ครั้งต่อไป VM บางตัวขึ้นอยู่กับตัวอื่น ดังนั้นเราจึงต้องการเวลาเพียงพอสำหรับ VM ในการเริ่มทำงานและรับบริการต่างๆ
Ken W MSFT avatar
gb flag
หากจำเป็นต้องสตาร์ทเครื่องจักรตามลำดับ คุณสามารถดูคู่มือการใช้งานนี้เพื่อเป็นแรงบันดาลใจ https://docs.microsoft.com/en-us/azure/devtest-labs/start-machines-use-automation-runbooks#:~:text=%20Start%20virtual%20machines%20in%20a%20lab%20in เป็น%20add%20a%20runbook%20to%20the...%20เพิ่มเติม%20

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา