Questo articolo è il continuo (scontato 🙂 ) del precedente articolo, ovvero Azure Automation – Spengiamo le nostre VM.
Potrebbe verificarsi infatti il caso che dobbiamo accendere autonomamente una VM o più VM, questo per attività schedulate o semplicemente per accendere prima una VM di sviluppo per far sì che il dev non perda tempo nella procedura di startup della VM.
Ho riproposto il link all’articolo precedente perché possiamo riprendere le fasi lì descritte fino alla creazione di un nuovo RunBook, che stavolta chiameremo Avvia-VM.
Lo script che propongo è questo:
workflow Avvia-VM { Param ( [parameter(Mandatory=$true)] [String] $VMName, [parameter(Mandatory=$true)] [String] $ServiceName ) $subscriptionName = Get-AutomationVariable -Name "SubscriptionName" $subscriptionID = Get-AutomationVariable -Name "SubscriptionID" $certificateName = Get-AutomationVariable -Name "CertificateName" $certificate = Get-AutomationCertificate -Name $certificateName Set-AzureSubscription -SubscriptionName $subscriptionName -SubscriptionId $subscriptionID -Certificate $certificate Select-AzureSubscription $subscriptionName $thisdow = ( get-date ).DayOfWeek.value__ if(($thisdow -gt 0) -and ($thisdow -lt 6) ) #only from monday to friday { $vm = Get-AzureVM -Name $VMName -ServiceName $ServiceName if($vm) { # Possible values are: Running, Suspended, RunningTransitioning, SuspendedTransitioning, Starting, Suspending, Deploying, Deleting Write-Output "VM " + $VMName + " InstanceStatus " + $vm.InstanceStatus if ( ($vm.InstanceStatus -eq 'StoppedVM') -or ($vm.InstanceStatus -eq 'StoppedDeallocated') ) { Write-Output "Startup VM " + $VMName Start-AzureVM -Name $VMName -ServiceName $ServiceName } } else { Write-Output "VM non trovata" } } }
Come potete notare, le differenze con l’articolo precedente sono:
Ora non mi resta che schedulare questo RunBook per ogni VM che voglio accendere, specificando quindi i parametri: Una volta pubblicato il RunBook, è necessario cliccare su “Pianifica”
e inserire i dati: Il nome della pianificazione, l’orario (ad esempio alle 08:00) di ogni giorno.
Visto che il nostro RunBook ha dei parametri (VmName e ServiceName), sarà possibile inserire i valori desiderati:
Da ora in poi il nostro RunBook sarà schedulato!
Se dalla finestra del RunBook cliccate su “Processi”, potrete vedere uno storico delle esecuzioni. Di ogni esecuzione potrete vedere l’esito (Stato) ed eventualmente l’output del processo.
Buon avvio delle VM da Azure Automation 🙂