Il primo runbook PowerShell

Questa esercitazione illustra la creazione di un runbook PowerShell in Automazione di Azure. Si inizia con un runbook semplice che sarà testato e pubblicato, quindi viene illustrato come tenere traccia dello stato del processo del runbook. Si modifica quindi il runbook per gestire effettivamente le risorse di Azure, avviando in questo caso una macchina virtuale di Azure. Si rende infine il runbook più affidabile aggiungendo i relativi parametri.

Prerequisiti

Per completare l'esercitazione, sono necessari gli elementi seguenti:

  • Sottoscrizione di Azure. Se non si ha ancora una sottoscrizione, è possibile attivare i vantaggi dell'abbonamento MSDN oppure iscriversi per ottenere un account gratuito.
  • Account di Automazione che conterrà il runbook ed eseguirà l'autenticazione con le risorse di Azure. Questo account deve avere l'autorizzazione per avviare e arrestare la macchina virtuale.
  • Macchina virtuale di Azure. La macchina virtuale viene arrestata e avviata, quindi non deve essere una macchina virtuale di produzione.

Passaggio 1: Creare nuovo runbook

Si inizierà creando un runbook semplice che restituisce il testo Hello World.

  1. Nel portale di Azure aprire l'account di automazione.
    La pagina dell'account di automazione offre una visualizzazione rapida delle risorse di questo account. Dovrebbero essere già disponibili alcuni asset. Per la maggior parte sono i moduli inclusi automaticamente in un nuovo account di automazione. Dovrebbe essere disponibile anche l'asset credenziali citato nei prerequisiti.
  2. Fare clic nel pannello Runbook per aprire l'elenco dei runbook.

    RunbooksControl
  3. Creare un nuovo runbook facendo clic sul pulsante Aggiungi runbook e quindi su Crea un nuovo runbook.
  4. Denominare il runbook MyFirstRunbook-PowerShell.
  5. In questo caso si sta creando un runbook PowerShell, quindi selezionare Powershell per Tipo di Runbook.

    Tipo di runbook
  6. Fare clic su Crea per creare il runbook e aprire l'editor di testo.

Passaggio 2: - aggiungere un codice al runbook

È possibile digitare il codice direttamente nel runbook, oppure è possibile selezionare i cmdlet, i runbook e le risorse dal controllo della libreria e aggiungerle al runbook con tutti i parametri correlati. Per questa procedura dettagliata si digiterà direttamente nel runbook.

  1. Il runbook è attualmente vuoto, digitare Write-Output "Hello World." nel corpo dello script.

    Hello World
  2. Salvare il runbook facendo clic su Salva.

    Pulsante Salva

Passaggio 3: Testare il runbook

Prima di pubblicare il runbook per renderlo disponibile nell'ambiente di produzione, occorre testarlo per verificare che funzioni correttamente. Quando si testa un runbook, è necessario eseguire la versione Bozza e visualizzarne l'output in modo interattivo.

  1. Fare clic su Pannello di test per aprire il pannello di test.

    Test Pane
  2. Fare clic su Avvia per avviare il test. Questa deve essere l'unica opzione abilitata.
  3. Viene creato un processo del runbook e il relativo stato viene visualizzato.
    Lo stato del processo verrà avviato come In coda per indicare che è in attesa della disponibilità di un ruolo di lavoro per runbook nel cloud. Lo stato passerà quindi ad Avvio in corso quando un ruolo di lavoro richiede il processo e quindi a In esecuzione quando l'esecuzione del runbook viene effettivamente avviata.
  4. Al termine del processo del runbook, viene visualizzato l'output. In questo caso, dovrebbe essere visualizzato Hello World.

    Output del Riquadro test
  5. Chiudere il riquadro di test per tornare all'area di disegno.

Passaggio 4: Pubblicare e avviare il runbook

Il runbook creato è ancora in modalità Bozza. È necessario pubblicarlo prima di poterlo eseguire in produzione. Quando si pubblica un runbook, è possibile sovrascrivere la versione pubblicata esistente con la versione bozza. In questo caso, non esiste ancora una versione pubblicata perché il runbook è appena stato creato.

  1. Fare clic su Pubblica per pubblicare il runbook, quindi su quando richiesto.

    Pulsante Publish
  2. Se ora si scorre verso sinistra per visualizzare il runbook nel pannello Runbook, come Stato di creazione viene visualizzato Pubblicato.
  3. Scorrere verso destra per visualizzare il riquadro MyFirstRunbook-PowerShell.
    Le opzioni nella parte superiore consentono di avviare il runbook, visualizzarlo, pianificarlo per l'avvio in un momento successivo o creare un webhook per poterlo avviare con una chiamata HTTP.
  4. Per avviare il runbook, fare clic su Avvia e quindi su OK quando si apre il pannello Avvia runbook.

    Pulsante Avvia
  5. Verrà aperto un pannello per il processo del runbook creato. È possibile chiudere questo riquadro, ma in questo caso lo si lascerà aperto per poter controllare lo stato del processo.
  6. Lo stato del processo è visualizzato in Riepilogo processi e corrisponde agli stati osservati quando è stato testato il runbook.

    Riepilogo processi
  7. Quando lo stato del runbook risulta Completatofare clic su Output. Viene aperto il pannello Output dove si può vedere il testo Hello World.

    Output processo
  8. Chiudere il riquadro Output.
  9. Fare clic su Tutti i log per aprire il riquadro Flussi relativo al processo del runbook. Nel flusso di output dovrebbe essere visibile solo Hello World , ma potrebbero essere visualizzati altri flussi per un processo del runbook, ad esempio Verbose ed Error se il runbook scrive in questi flussi.

    Tutti i log
  10. Chiudere il riquadro Flussi e il riquadro dei processi per tornare al riquadro MyFirstRunbook-PowerShell.
  11. Fare clic su Processi per aprire il pannello dei processi per questo runbook. Sono elencati tutti i processi creati da questo runbook. Dovrebbe essere elencato un solo processo, perché il processo è stato eseguito una sola volta.

    Elenco processi
  12. È possibile fare clic su questo processo per aprire lo stesso pannello visualizzato quando è stato avviato il runbook. In questo modo è possibile tornare indietro nel tempo e visualizzare i dettagli di tutti i processi creati per un runbook particolare.

Passaggio 5: Aggiungere l'autenticazione per gestire le risorse di Azure

Il runbook è stato testato e pubblicato, ma finora non esegue alcuna attività utile. Si vuole fare in modo che gestisca le risorse di Azure. Sarà tuttavia in grado di eseguire questa operazione solo dopo aver fatto in modo che esegua l'autenticazione con le credenziali indicate nei prerequisiti. A questo scopo si userà il cmdlet Add-AzureRmAccount .

  1. Aprire l'editor di testo facendo clic su Modifica nel riquadro MyFirstRunbook-PowerShell.

    Modifica runbook
  2. Non è più necessaria la riga Write-Output , quindi andare avanti ed eliminarla.
  3. Digitare o copiare e incollare il codice seguente che gestisce l'autenticazione con l'account RunAs di Automazione:

    $Conn = Get-AutomationConnection -Name AzureRunAsConnection
    Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID `
    -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
    


  4. Fare clic sul Pannello di test in modo da testare il runbook.
  5. Fare clic su Avvia per avviare il test. Al termine verrà visualizzato un output simile al seguente, con le informazioni di base sull'account. Questo conferma che la credenziale è valida.

    Autentica

Passaggio 6 - aggiungere il codice per avviare una macchina virtuale

Ora che il runbook esegue l'autenticazione per la sottoscrizione di Azure è possibile gestire le risorse. Si aggiunge un comando per avviare una macchina virtuale. È possibile selezionare una macchina virtuale qualsiasi nella sottoscrizione di Azure. Per ora il nome sarà hardcoded nel runbook.

  1. Dopo Add-AzureRmAccount digitare Start-AzureRmVM -Name 'VMName' -ResourceGroupName 'NameofResourceGroup' specificando il nome e il nome del gruppo di risorse della macchina virtuale da avviare.

    $Conn = Get-AutomationConnection -Name AzureRunAsConnection
    Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID `
    -ApplicationID $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
    Start-AzureRmVM -Name 'VMName' -ResourceGroupName 'ResourceGroupName'
    


  2. Salvare il runbook e poi fare clic su Pannello di Test in modo da poterne eseguire il test.
  3. Fare clic su Avvia per avviare il test. Dopo aver completato l'attività, controllare che la macchina virtuale sia stata avviata.

Passaggio 7: Aggiungere un parametro di input al runbook

Ora il runbook avvia la macchina virtuale impostata come hardcoded nel runbook, ma sarebbe più utile specificare la macchina virtuale quando si avvia il runbook. Per fornire questa funzionalità, ora si aggiungeranno dei parametri di input al runbook.

  1. Aggiungere parametri per VMName e ResourceGroupName al runbook e usare queste variabili con il cmdlet Start-AzureRmVM come nell'esempio seguente.

    Param(
     [string]$VMName,
     [string]$ResourceGroupName
    )
    $Conn = Get-AutomationConnection -Name AzureRunAsConnection
    Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID `
    -ApplicationID $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
    Start-AzureRmVM -Name $VMName -ResourceGroupName $ResourceGroupName
    


  2. Salvare il runbook e aprire il riquadro Test. È ora possibile fornire i valori per le due variabili di input usate nel test.
  3. Chiudere il riquadro Test.
  4. Fare clic su Pubblica per pubblicare la nuova versione del runbook.
  5. Arrestare la macchina virtuale avviata nel passaggio precedente.
  6. Fare clic su Avvia per avviare il runbook. Digitare VMName e ResourceGroupName per la macchina virtuale da avviare.

    Passare i parametri
  7. Quando il runbook viene completato, controllare che la macchina virtuale sia stata avviata.

Differenze rispetto al flusso di lavoro PowerShell

I runbook PowerShell hanno lo stesso ciclo di vita, le stesse funzionalità e la stessa modalità di gestione dei runbook Flusso di lavoro PowerShell, ma con alcune differenze e limitazioni:

  1. L'esecuzione dei runbook PowerShell è più rapida rispetto ai runbook Flusso di lavoro PowerShell, perché non prevedono un passaggio di compilazione.
  2. Grazie al supporto dei checkpoint, i runbook Flusso di lavoro PowerShell possono riprendere da qualsiasi punto del runbook, mentre i runbook PowerShell possono riprendere solo dall'inizio.
  3. I runbook Flusso di lavoro PowerShell supportano l'esecuzione seriale e parallela, mentre i runbook PowerShell possono eseguire i comandi solo in modo seriale.
  4. In un runbook Flusso di lavoro PowerShell un'attività, un comando o un blocco di script può avere un proprio spazio di esecuzione, mentre in un runbook PowerShell tutti gli elementi in uno script vengono eseguiti in un singolo spazio di esecuzione. Esistono anche differenze di sintassi tra un runbook PowerShell nativo e un runbook Flusso di lavoro PowerShell.

Passaggi successivi