Tag: Hybrid Cloud

Ho avuto l’onore di vedere pubblicato un mio blog post sul Blog del team di Microsoft MSDN Italia!

Questo è il link al post!

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:

  • La presenza di parametri (Righe dalla 3 alla 11): Voglio accendere una VM per volta, quindi dovrò passare come informazione il nome della Virtual Machine e il Nome del Servizio.
  • Imposto un piccolo if dove controllo se il giorno della settimana è dal lunedì al venerdì (Righe 20 e 21)

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”

AutomationStartup1

e inserire i dati: Il nome della pianificazione, l’orario (ad esempio alle 08:00) di ogni giorno.

AutomationStartup2

Visto che il nostro RunBook ha dei parametri (VmName e ServiceName), sarà possibile inserire i valori desiderati:

AutomationStartup3

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.

AutomationStartup4

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€*.

 Continua a leggere