Il primo runbook del flusso di lavoro PowerShellMy first PowerShell Workflow runbook

Questa esercitazione illustra la creazione di un runbook del flusso di lavoro PowerShell in Automazione di Azure.This tutorial walks you through the creation of a PowerShell Workflow runbook in Azure Automation. Si inizia con un runbook semplice che viene testato e pubblicato, quindi viene illustrato come tenere traccia dello stato del processo del runbook.We start with a simple runbook that we test and publish while explaining how to track the status of the runbook job. Si modifica quindi il runbook per gestire effettivamente le risorse di Azure, avviando in questo caso una macchina virtuale di Azure.Then we modify the runbook to actually manage Azure resources, in this case starting an Azure virtual machine. Si rende infine il runbook più affidabile aggiungendo i relativi parametri.Lastly we make the runbook more robust by adding runbook parameters.

PrerequisitiPrerequisites

Per completare l'esercitazione, sono necessari gli elementi seguenti:To complete this tutorial, you need the following:

  • Sottoscrizione di Azure.Azure subscription. Se non si ha ancora una sottoscrizione, è possibile attivare i vantaggi dell'abbonamento MSDN oppure iscriversi per ottenere un account gratuito.If you don't have one yet, you can activate your MSDN subscriber benefits or sign up for a free account.
  • Account di Automazione che conterrà il runbook ed eseguirà l'autenticazione con le risorse di Azure.Automation account to hold the runbook and authenticate to Azure resources. Questo account deve avere l'autorizzazione per avviare e arrestare la macchina virtuale.This account must have permission to start and stop the virtual machine.
  • Macchina virtuale di Azure.An Azure virtual machine. La macchina virtuale viene arrestata e avviata, quindi non deve essere una macchina virtuale di produzione.We stop and start this machine so it should not be a production VM.

Passaggio 1: Creare nuovo runbookStep 1 - Create new runbook

Si inizierà creando un runbook semplice che restituisce il testo Hello World.We'll start by creating a simple runbook that outputs the text Hello World.

  1. Nel portale di Azure aprire l'account di automazione.In the Azure portal, open your Automation account.
    La pagina dell'account di automazione offre una visualizzazione rapida delle risorse di questo account.The Automation account page gives you a quick view of the resources in this account. Dovrebbero essere già disponibili alcuni asset.You should already have some assets. Per la maggior parte sono i moduli inclusi automaticamente in un nuovo account di automazione.Most of those are the modules that are automatically included in a new Automation account. Dovrebbe essere disponibile anche l'asset credenziali citato nei prerequisiti.You should also have the Credential asset that's mentioned in the prerequisites.
  2. Fare clic sul riquadro Runbook per aprire l'elenco dei runbook.Click on the Runbooks tile to open the list of runbooks.

    Controllo RunbookRunbooks control
  3. Creare un nuovo runbook facendo clic sul pulsante Aggiungi Runbook e quindi su Crea un nuovo runbook.Create a new runbook by clicking on the Add a runbook button and then Create a new runbook.
  4. Denominare il runbook MyFirstRunbook-Workflow.Give the runbook the name MyFirstRunbook-Workflow.
  5. In questo caso si sta creando un runbook del flusso di lavoro PowerShell, quindi selezionare Flusso di lavoro PowerShell per Tipo di Runbook.In this case, we're going to create a PowerShell Workflow runbook so select Powershell Workflow for Runbook type.

    Nuovo runbookNew runbook
  6. Fare clic su Crea per creare il runbook e aprire l'editor di testo.Click Create to create the runbook and open the textual editor.

Passaggio 2: - aggiungere un codice al runbookStep 2 - Add code to the 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.You can either type code directly into the runbook, or you can select cmdlets, runbooks, and assets from the Library control and have them added to the runbook with any related parameters. Per questa procedura dettagliata, si digiterà direttamente nel runbook.For this walkthrough, we'll type directly into the runbook.

  1. Il runbook è attualmente vuoto con solo la parola chiave richiesta workflow , il nome del runbook e le parentesi graffe che racchiuderanno l'intero flusso di lavoro.Our runbook is currently empty with only the required workflow keyword, the name of our runbook, and the braces that will encase the entire workflow.

    Workflow MyFirstRunbook-Workflow
    {
    }
    
  2. Digitare Write-Output "Hello World".Type Write-Output "Hello World." tra parentesi graffe.between the braces.

    Workflow MyFirstRunbook-Workflow
    {
    Write-Output "Hello World"
    }
    
  3. Salvare il runbook facendo clic su Salva.Save the runbook by clicking Save.

    Salvataggio del runbookSave runbook

Passaggio 3: Testare il runbookStep 3 - Test the runbook

Prima di pubblicare il runbook per renderlo disponibile nell'ambiente di produzione, occorre testarlo per verificare che funzioni correttamente.Before we publish the runbook to make it available in production, we want to test it to make sure that it works properly. Quando si testa un runbook, è necessario eseguire la versione Bozza e visualizzarne l'output in modo interattivo.When you test a runbook, you run its Draft version and view its output interactively.

  1. Fare clic su Pannello di test per aprire il pannello di test.Click Test pane to open the Test pane.

    Pannello di testTest pane
  2. Fare clic su Avvia per avviare il test.Click Start to start the test. Questa deve essere l'unica opzione abilitata.This should be the only enabled option.
  3. Viene creato un processo del runbook e il relativo stato viene visualizzato.A runbook job is created and its status displayed.
    Lo stato del processo verrà avviato come In coda per indicare che è in attesa della disponibilità di un thread di lavoro del runbook nel cloud.The job status will start as Queued indicating that it is waiting for a runbook worker in the cloud to come available. 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.It will then move to Starting when a worker claims the job, and then Running when the runbook actually starts running.
  4. Al termine del processo del runbook, viene visualizzato l'output.When the runbook job completes, its output is displayed. In questo caso, dovrebbe essere visualizzato Hello World.In our case, we should see Hello World.

    Hello WorldHello World
  5. Chiudere il riquadro di test per tornare all'area di disegno.Close the Test pane to return to the canvas.

Passaggio 4: Pubblicare e avviare il runbookStep 4 - Publish and start the runbook

Il runbook appena creato è ancora in modalità Bozza.The runbook that we just created is still in Draft mode. È necessario pubblicarlo prima di poterlo eseguire in produzione.We need to publish it before we can run it in production. Quando si pubblica un runbook, è possibile sovrascrivere la versione pubblicata esistente con la versione bozza.When you publish a runbook, you overwrite the existing Published version with the Draft version. In questo caso, non esiste ancora una versione pubblicata perché il runbook è appena stato creato.In our case, we don't have a Published version yet because we just created the runbook.

  1. Fare clic su Pubblica per pubblicare il runbook, quindi su quando richiesto.Click Publish to publish the runbook and then Yes when prompted.

    PubblicaPublish
  2. Se ora si scorre verso sinistra per visualizzare il runbook nel pannello Runbook, come Stato di creazione viene visualizzato Pubblicato.If you scroll left to view the runbook in the Runbooks pane now, it will show an Authoring Status of Published.
  3. Scorrere verso destra per visualizzare il pannello MyFirstRunbook-Workflow.Scroll back to the right to view the pane for MyFirstRunbook-Workflow.
    Le opzioni nella parte superiore consentono di avviare il runbook, pianificarlo per avviarlo in qualsiasi momento in futuro o creare un webhook per poterlo avviare con una chiamata HTTP.The options across the top allow us to start the runbook, schedule it to start at some time in the future, or create a webhook so it can be started through an HTTP call.
  4. Si vuole solo avviare il runbook, quindi fare clic su Avvia e poi su quando richiesto.We just want to start the runbook so click Start and then Yes when prompted.

    Avvia runbookStart runbook
  5. Viene aperto un riquadro del processo per il processo del runbook appena creato.A job pane is opened for the runbook job that we just created. È possibile chiudere questo riquadro, ma in questo caso lo si lascerà aperto per poter controllare l'avanzamento del processo.We can close this pane, but in this case we'll leave it open so we can watch the job's progress.
  6. Lo stato del processo è visualizzato in Riepilogo processi e corrisponde agli stati osservati quando è stato testato il runbook.The job status is shown in Job Summary and matches the statuses that we saw when we tested the runbook.

    Riepilogo processiJob Summary
  7. Quando lo stato del runbook risulta Completatofare clic su Output.Once the runbook status shows Completed, click Output. Viene aperto il pannello Output dove si può vedere il testo Hello World.The Output pane is opened, and we can see our Hello World.

    Riepilogo dei processiJob Summary
  8. Chiudere il riquadro Output.Close the Output pane.
  9. Fare clic su Tutti i log per aprire il riquadro Flussi relativo al processo del runbook.Click All Logs to open the Streams pane for the runbook job. 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.We should only see Hello World in the output stream, but this can show other streams for a runbook job such as Verbose and Error if the runbook writes to them.

    Riepilogo dei processiJob Summary
  10. Chiudere il riquadro dei flussi e il riquadro dei processi per tornare al riquadro MyFirstRunbook.Close the Streams pane and the Job pane to return to the MyFirstRunbook pane.
  11. Fare clic su Processi per aprire il pannello dei processi per questo runbook.Click Jobs to open the Jobs pane for this runbook. Sono elencati tutti i processi creati da questo runbook.This lists all of the jobs created by this runbook. Dovrebbe essere elencato un solo processo, perché il processo è stato eseguito una sola volta.We should only see one job listed since we only ran the job once.

    ProcessiJobs
  12. È possibile fare clic su questo processo per aprire lo stesso riquadro del processo visualizzato quando è stato avviato il runbook.You can click on this job to open the same Job pane that we viewed when we started the runbook. In questo modo è possibile tornare indietro nel tempo e visualizzare i dettagli di tutti i processi creati per un runbook particolare.This allows you to go back in time and view the details of any job that was created for a particular runbook.

Passaggio 5: Aggiungere l'autenticazione per gestire le risorse di AzureStep 5 - Add authentication to manage Azure resources

Il runbook è stato testato e pubblicato, ma finora non esegue alcuna attività utile.We've tested and published our runbook, but so far it doesn't do anything useful. Si vuole fare in modo che gestisca le risorse di Azure.We want to have it manage Azure resources. Sarà tuttavia in grado di eseguire questa operazione solo dopo aver fatto in modo che esegua l'autenticazione con le credenziali indicate nei prerequisiti.It won't be able to do that though unless we have it authenticate using the credentials that are referred to in the prerequisites. A questo scopo si userà il cmdlet Add-AzureRmAccount .We do that with the Add-AzureRMAccount cmdlet.

  1. Aprire l'editor di testo facendo clic su Modifica nel pannello MyFirstRunbook-Workflow.Open the textual editor by clicking Edit on the MyFirstRunbook-Workflow pane.

    Modificare il runbookEdit runbook
  2. Non è più necessaria la riga Write-Output , quindi andare avanti ed eliminarla.We don't need the Write-Output line anymore, so go ahead and delete it.
  3. Posizionare il cursore su una riga vuota tra parentesi graffe.Position the cursor on a blank line between the braces.
  4. Digitare o copiare e incollare il codice seguente che gestirà l'autenticazione con l'account RunAs di Automazione:Type or copy and paste the following code that will handle the authentication with your Automation Run As account:

    $Conn = Get-AutomationConnection -Name AzureRunAsConnection
    Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID `
    -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
    
  5. Fare clic sul Pannello di test in modo da testare il runbook.Click Test pane so that we can test the runbook.
  6. Fare clic su Avvia per avviare il test.Click Start to start the test. Al termine verrà visualizzato un output simile al seguente, con le informazioni di base sull'account.Once it completes, you should receive output similar to the following, displaying basic information from your account. Questo conferma che la credenziale è valida.This confirms that the credential is valid.

    AutenticaAuthenticate

Passaggio 6 - aggiungere il codice per avviare una macchina virtualeStep 6 - Add code to start a virtual machine

Ora che il runbook esegue l'autenticazione per la sottoscrizione di Azure è possibile gestire le risorse.Now that our runbook is authenticating to our Azure subscription, we can manage resources. Si aggiunge un comando per avviare una macchina virtuale.We add a command to start a virtual machine. È possibile selezionare una macchina virtuale qualsiasi nella sottoscrizione di Azure. Per ora il nome sarà hardcoded nel runbook.You can pick any virtual machine in your Azure subscription, and for now we will be hardcoding that name in the 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.After Add-AzureRmAccount, type Start-AzureRmVM -Name 'VMName' -ResourceGroupName 'NameofResourceGroup' providing the name and Resource Group name of the virtual machine to start.

    workflow MyFirstRunbook-Workflow
    {
    $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.Save the runbook and then click Test pane so that we can test it.
  3. Fare clic su Avvia per avviare il test.Click Start to start the test. Dopo aver completato l'attività, controllare che la macchina virtuale sia stata avviata.Once it completes, check that the virtual machine was started.

Passaggio 7: Aggiungere un parametro di input al runbookStep 7 - Add an input parameter to the runbook

Ora il runbook avvia la macchina virtuale specificata nel runbook, ma sarebbe più utile se si potesse specificare la macchina virtuale quando si avvia il runbook.Our runbook currently starts the virtual machine that we hardcoded in the runbook, but it would be more useful if we could specify the virtual machine when the runbook is started. Per fornire questa funzionalità, ora si aggiungeranno dei parametri di input al runbook.We will now add input parameters to the runbook to provide that functionality.

  1. Aggiungere parametri per VMName e ResourceGroupName al runbook e usare queste variabili con il cmdlet Start-AzureRmVM come nell'esempio seguente.Add parameters for VMName and ResourceGroupName to the runbook and use these variables with the Start-AzureRmVM cmdlet as in the example below.

    workflow MyFirstRunbook-Workflow
    {
     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.Save the runbook and open the Test pane. Si noti che ora è possibile fornire i valori per le due variabili di input che verranno usate nel test.Note that you can now provide values for the two input variables that will be used in the test.
  3. Chiudere il riquadro Test.Close the Test pane.
  4. Fare clic su Pubblica per pubblicare la nuova versione del runbook.Click Publish to publish the new version of the runbook.
  5. Arrestare la macchina virtuale avviata nel passaggio precedente.Stop the virtual machine that you started in the previous step.
  6. Fare clic su Avvia per avviare il runbook.Click Start to start the runbook. Digitare VMName e ResourceGroupName per la macchina virtuale da avviare.Type in the VMName and ResourceGroupName for the virtual machine that you're going to start.

    Start RunbookStart Runbook
  7. Quando il runbook viene completato, controllare che la macchina virtuale sia stata avviata.When the runbook completes, check that the virtual machine was started.

Passaggi successiviNext steps