Azure Automation: configurare un hybrid worker

Tra le varie funzionalità presenti in Azure Automation, c’è quella di poter orchestrare degli script da eseguire in cloud oppure on-premises. La logica dei Runbook sono un derivato di System Center Orchestrator, un grande prodotto che consente(iva) di eseguire flussi operativi sulla base di condizioni varie. Con la lenta dismissione di SCO, ecco che Automation è diventato sempre più predominante, anche in virtù dei tanti script disponibili su GitHub.

Con Azure Automation potete accedere e spegnere macchine virtuali, fare controlli ed inviare notifiche, verificare lo stato di servizi critici oppure, come vedremo in questo articolo, riavviare un server.

Prima di partire è necessario aver rispettato i seguenti requisiti:

  • Avere una sottoscrizione Azure
  • Aver creato un Workspace in Log Analytics
  • Aver creato un profilo Azure Automation
  • Aver installato l’agent LA all’interno della macchina locale

Per poter eseguire dei comandi all’interno di una macchina virtuale, è necessario creare degli Hybrid Worker Group, ovvero un gruppo di macchine su cui lanciare di task.

Gli Hybrid Worker Group non si possono creare da Azure ma si popolano all’esecuzione dello script di onboarding.

Il primo passo è quello di scaricare lo script New-OnPremiseHybridWorker.ps1 dalla PowerShell Gallery. Successivamente aprire PowerShell -figura 2 – come amministratore e lanciare il comando Install-Script -Name New-OnPremiseHybridWorker

NB: In caso doveste ricevere qualche messaggio di errore, relativo al NuGet 2.8.x, è possibile che non sia attivo il TLS 1.2 per la parte PowerShell; in questo caso lanciare il comando [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 e riavviare la console PowerShell.

E’ tempo di lanciare l’onboarding dell’agent con Azure Automation con il seguente script, che dovrà portare un risultato simile alla figura 3.

C:\Program Files\WindowsPowerShell\Scripts

$NewOnPremiseHybridWorkerParameters = @{
  AutomationAccountName = "automationname"
  AAResourceGroupName   = "ResourceGroupAA"
  OMSResourceGroupName  = "ResourceGroupLogAnalytics"
  HybridGroupName       = "GroupName"
  SubscriptionID        = "AzureSubscirption"
  WorkspaceName         = "LogAnalyticsName"
}
.\New-OnPremiseHybridWorker.ps1 @NewOnPremiseHybridWorkerParameters

Dopo qualche minuto il computer verrà inserito all’interno del gruppo Azure – figura 4.

Creazione RunBook

Il runbook, in questo caso, è molto semplice e consiste nel restart delle macchine presenti in quel Hybrid Worker.

Clicando sul pulsante Edit, potete editare lo script in formato PowerShell – figura 6.

Salvare e pubblicare lo script. Successivamente preparare la schedulazione indicando che il target run sarà l’Hybrid Worker appena creato – figura 7.

Conclusioni

Azure Automation è sicuramente uno strumento utile per l’esecuzione di script di vario genere e va a sostuire le vecchie piattaforme on-premises, centralizzando la gestione all’interno di Azure. Ricordate che i primi 500 minuti, mensili, sono gratuiti e questo dovrebbe essere un motivo per usarlo.