Ho avuto l’onore di vedere pubblicato un mio blog post sul Blog del team di Microsoft MSDN Italia!
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 🙂
Da qualche mese nell’azienda per quale lavoro, ovvero Vivido, abbiamo migrato tutti gli ambienti di sviluppo su Microsoft Azure.
L’Hybrid Cloud conta attualmente circa 30 VM con ambienti di sviluppo (SO Windows 8.1 o 10, Visual Studio 2015 o Eclipse a seconda dei linguaggi di sviluppo) e sono assegnate ai singoli dipendenti.
L’operatività iniziale è quella che, non appena arrivato in ufficio, ogni sviluppatore acceda al portale Portale Azure con le proprie credenziali, si avvii la VM che più gli interessa (un dev può avere anche una VM per ambiente di sviluppo) e si colleghi una volta avviato via RDP. Una volta terminato il lavoro la vm deve essere spenta e deallocata: visto che il cloud ha un costo in base alle ore di effettivo utilizzo delle componenti, se la VM viene spenta non ci sono costi (fatta eccezione per lo storage che la VM occupa).
Facendo un rapido calcolo, prendendo dal calcolatore prezzi di Microsoft Azure il costo di una VM A3 (Area Europa Occidentale, Tipo Windows, Piano Standard) per un mese è di circa 226€*.