Il primo runbook graficoMy first graphical runbook

Questa esercitazione illustra la creazione di un runbook grafico in Automazione di Azure.This tutorial walks you through the creation of a graphical runbook in Azure Automation. Si inizia con un runbook semplice che esegue test e pubblicazioni, quindi viene illustrato come tenere traccia dello stato del processo del runbook.We start with a simple runbook that tests and publishes while we explain 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 completerà quindi l'esercitazione rendendo il runbook più affidabile con l'aggiunta di parametri e collegamenti condizionali.Then we complete the tutorial by making the runbook more robust by adding runbook parameters and conditional links.

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 un runbookStep 1 - Create runbook

Si inizia creando un runbook semplice che restituisce il testo Hello World.We 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 nel pannello Runbook per aprire l'elenco dei runbook.Click 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-Graphical.Give the runbook the name MyFirstRunbook-Graphical.
  5. In questo caso verrà creato un runbook grafico, quindi selezionare Grafico in Tipo di runbook.In this case, we're going to create a graphical runbook so select Graphical for Runbook type.
    Nuovo runbookNew runbook
  6. Fare clic su Crea per creare il runbook e aprire l'editor grafico.Click Create to create the runbook and open the graphical editor.

Passaggio 2: Aggiungere attività al runbookStep 2 - Add activities to the runbook

Il controllo Libreria sul lato sinistro dell'editor consente di selezionare le attività da aggiungere al runbook.The Library control on the left side of the editor allows you to select activities to add to your runbook. Si aggiungerà un cmdlet Write-Output per l'output del testo dal runbook.We're going to add a Write-Output cmdlet to output text from the runbook.

  1. Nel controllo Libreria fare clic nella casella di testo di ricerca e digitare Write-Output.In the Library control, click in the search textbox and type Write-Output. I risultati della ricerca verranno visualizzati sotto.The search results will be displayed below.
    Microsoft.PowerShell.UtilityMicrosoft.PowerShell.Utility
  2. Scorrere fino alla fine dell'elenco.Scroll down to the bottom of the list. È possibile fare clic con il pulsante destro del mouse su Write-Output e scegliere Aggiungi ad area di disegno o fare clic sui puntini di sospensione accanto al cmdlet e quindi selezionare Aggiungi ad area di disegno.You can either right-click Write-Output and select Add to canvas or click the ellipse next to the cmdlet and then select Add to canvas.
  3. Fare clic sull'attività Write-Output nell'area di disegno.Click the Write-Output activity on the canvas. Si aprirà il pannello Controllo configurazione che consente di configurare l'attività.This opens the Configuration control blade, which allows you to configure the activity.
  4. In Etichetta è impostato il nome predefinito del cmdlet, ma è possibile modificarlo specificando un nome più descrittivo.The Label defaults to the name of the cmdlet, but we can change it to something more friendly. Cambiarlo in Scrivere Hello World nell'output.Change it to Write Hello World to output.
  5. Fare clic su Parametri per specificare i valori per i parametri del cmdlet.Click Parameters to provide values for the cmdlet's parameters.
    Alcuni cmdlet hanno più set di parametri ed è necessario selezionarne uno da usare.Some cmdlets have multiple parameter sets, and you need to select which you one to use. In questo caso, Write-Output ha un solo set di parametri, quindi non è necessario selezionarne uno.In this case, Write-Output has only one parameter set, so you don't need to select one.
    Proprietà Write-OutputWrite-Output properties
  6. Selezionare il parametro InputObject .Select the InputObject parameter. Si tratta del parametro in cui si specificherà il testo da inviare al flusso di output.This is the parameter where we specify the text to send to the output stream.
  7. Nell'elenco a discesa Origine dati selezionare Espressione PowerShell.In the Data source dropdown, select PowerShell expression. L'elenco a discesa Origine dati include diverse origini che è possibile usare per popolare il valore di un parametro.The Data source dropdown provides different sources that you use to populate a parameter value.
    È possibile usare l'output da tali origini, ad esempio un'altra attività, un asset di automazione o un'espressione di PowerShell.You can use output from such sources such as another activity, an Automation asset, or a PowerShell expression. In questo caso, si vuole solo generare il testo Hello World.In this case, we just want to output the text Hello World. È possibile usare un'espressione di PowerShell e specificare una stringa.We can use a PowerShell expression and specify a string.
  8. Nella casella Espressione digitare "Hello World" e quindi fare clic su OK due volte per tornare all'area di disegno.In the Expression box, type "Hello World" and then click OK twice to return to the canvas.
    PowerShell ExpressionPowerShell Expression
  9. 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 Riquadro di test per aprire il pannello Test.Click Test pane to open the Test blade.
    Riquadro 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 nel riquadro.A runbook job is created and its status displayed in the pane.
    Lo stato iniziale del processo è In coda per indicare che è in attesa della disponibilità di un ruolo di lavoro per runbook nel cloud.The job status starts as Queued indicating that it is waiting for a runbook worker in the cloud to become available. Lo stato passa 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 then moves 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 pannello Test per tornare all'area di disegno.Close the Test blade to return to the canvas.

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

Il runbook creato è ancora in modalità Bozza.The runbook that we 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 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 blade, it shows an Authoring Status of Published.
  3. Scorrere verso destra per visualizzare il pannello MyFirstRunbook.Scroll back to the right to view the blade for MyFirstRunbook.
    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 pannello per il processo del runbook creato.A job blade is opened for the runbook job that we created. È possibile chiudere questo pannello, ma in questo caso lo si lascerà aperto per poter controllare lo stato del processo.We can close this blade, but in this case we 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 dei 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 nel riquadro.The Output blade is opened, and we can see our Hello World in the pane.
    Riepilogo dei processiJob Summary
  8. Chiudere il pannello Output.Close the Output blade.
  9. Fare clic su Tutti i log per aprire il pannello Flussi relativo al processo del runbook.Click All Logs to open the Streams blade 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 pannello Tutti i log e il pannello Processo per tornare al pannello MyFirstRunbook.Close the All Logs blade and the Job blade to return to the MyFirstRunbook blade.
  11. Fare clic su Processi per aprire il pannello Processi per questo runbook.Click Jobs to open the Jobs blade for this runbook. Sono elencati tutti i processi creati da questo runbook.This lists all 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 pannello visualizzato quando è stato avviato il runbook.You can click 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: Creare asset di variabileStep 5 - Create variable assets

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. Prima di configurare il runbook per l'autenticazione verrà creata una variabile che conterrà l'ID sottoscrizione e alla quale si farà riferimento dopo aver configurato l'attività per l'autenticazione più avanti nel passaggio 6.Before we configure the runbook to authenticate, we create a variable to hold the subscription ID and reference it after we set up the activity to authenticate in step 6 below. L'inserimento di un riferimento al contesto della sottoscrizione consente di usare facilmente più sottoscrizioni contemporaneamente.Including a reference to the subscription context allows you to easily work between multiple subscriptions. Prima di procedere, copiare l'ID sottoscrizione dall'opzione Sottoscrizioni del riquadro di spostamento.Before proceeding, copy your subscription ID from the Subscriptions option off the Navigation pane.

  1. Nel pannello Account di automazione fare clic sul riquadro Asset per aprire il pannello Asset.In the Automation Accounts blade, click the Assets tile and the Assets blade is opened.
  2. Nel pannello Asset fare clic sul riquadro Variabili.In the Assets blade, click the Variables tile.
  3. Nel pannello Variabili fare clic su Aggiungi variabile.On the Variables blade, click Add a variable.
    Variabile di AutomazioneAutomation Variable
  4. Nella casella Nome del pannello Nuova variabile immettere AzureSubscriptionId e nella casella Valore immettere l'ID sottoscrizione.In the New variable blade, in the Name box, enter AzureSubscriptionId and in the Value box enter your Subscription ID. Lasciare Stringa in Tipo e il valore predefinito in Crittografia.Keep string for the Type and the default value for Encryption.
  5. Fare clic su Crea per creare la variabile.Click Create to create the variable.

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

Dopo avere creato una variabile che contiene l'ID sottoscrizione, è possibile configurare il runbook per l'autenticazione con le credenziali Esegui come a cui si fa riferimento nei prerequisiti.Now that we have a variable to hold our subscription ID, we can configure our runbook to authenticate with the Run As credentials that are referred to in the prerequisites. Questa operazione viene eseguita aggiungendo il cmdlet Asset e Add-AzureRMAccount della connessione RunAs di Azure all'area di disegno.We do that by adding the Azure Run As connection Asset and Add-AzureRMAccount cmdlet to the canvas.

  1. Aprire l'editor grafico facendo clic su Modifica nel pannello MyFirstRunbook.Open the graphical editor by clicking Edit on the MyFirstRunbook blade.
    Modificare il runbookEdit runbook
  2. Scrivere Hello World nell'output non è più necessario, quindi fare clic con il pulsante destro del mouse sul testo e scegliere Elimina.We don't need the Write Hello World to output anymore, so right-click it and select Delete.
  3. Nel controllo Libreria espandere Connessioni e aggiungere AzureRunAsConnection all'area di disegno selezionando Aggiungi ad area di disegno.In the Library control, expand Connections and add AzureRunAsConnection to the canvas by selecting Add to canvas.
  4. Nell'area di disegno selezionare AzureRunAsConnection e nel riquadro del controllo Configurazione digitare Get Run As Connection nella casella di testo Etichetta.On the canvas, select AzureRunAsConnection and in the Configuration control pane, type Get Run As Connection in the Label textbox. Si tratta della connessioneThis is the connection
  5. Nel controllo Libreria digitare Add-AzureRmAccount nella casella di testo di ricerca.In the Library control, type Add-AzureRmAccount in the search textbox.
  6. Aggiungere Aggiungere-AzureRmAccount all'area di disegno.Add Add-AzureRmAccount to the canvas.
    Add-AzureRMAccountAdd-AzureRMAccount
  7. Passare il puntatore su Get Run As Connection finché non viene visualizzato un cerchio nella parte inferiore della forma.Hover over Get Run As Connection until a circle appears on the bottom of the shape. Fare clic sul cerchio e trascinare la freccia su Add-AzureRmAccount.Click the circle and drag the arrow to Add-AzureRmAccount. La freccia creata è un collegamento.The arrow that you created is a link. Il runbook verrà avviato con Get Run As Connection (Ottieni connessione RunAs) e quindi eseguirà Add-AzureRmAccount.The runbook starts with Get Run As Connection and then run Add-AzureRmAccount.
    Creare un collegamento tra le attivitàCreate link between activities
  8. Nell'area di disegno selezionare Add-AzureRmAccount e nel riquadro del controllo Configurazione digitare Login to Azure nella casella di testo Etichetta.On the canvas, select Add-AzureRmAccount and in the Configuration control pane type Login to Azure in the Label textbox.
  9. Fare clic su Parametri per visualizzare il pannello Configurazione parametro attività.Click Parameters and the Activity Parameter Configuration blade appears.
  10. Add-AzureRmAccount include più set di parametri, quindi è necessario selezionarne uno prima di poterne indicare i valori.Add-AzureRmAccount has multiple parameter sets, so we need to select one before we can provide parameter values. Fare clic su Set di parametri e quindi selezionare il set di parametri ServicePrincipalCertificatewithSubscriptionId.Click Parameter Set and then select the ServicePrincipalCertificatewithSubscriptionId parameter set.
  11. Dopo aver selezionato il set di parametri, nel pannello Configurazione parametro attività vengono visualizzati i parametri.Once you select the parameter set, the parameters are displayed in the Activity Parameter Configuration blade. Fare clic su APPLICATIONID.Click APPLICATIONID.
    Aggiungere parametri all'account Azure RMAdd Azure RM account parameters
  12. Nel pannello Valore parametro selezionare Output attività per Origine dati e quindi selezionare Get Run As Connection dall'elenco, nella casella di testo Percorso campo digitare ApplicationId e quindi fare clic su OK.In the Parameter Value blade, select Activity output for the Data source and select Get Run As Connection from the list, in the Field path textbox type ApplicationId, and then click OK. Viene specificato il nome della proprietà per il percorso del campo perché l'attività restituisce un oggetto con più proprietà.We are specifying the name of the property for the Field path because the activity outputs an object with multiple properties.
  13. Fare clic su CERTIFICATETHUMBPRINT e nel pannello Valore parametro selezionare Output attività per Origine dati.Click CERTIFICATETHUMBPRINT, and in the Parameter Value blade, select Activity output for the Data source. Selezionare Get Run As Connection dall'elenco, digitare CertificateThumbprint nella casella di testo Percorso campo e quindi fare clic su OK.Select Get Run As Connection from the list, in the Field path textbox type CertificateThumbprint, and then click OK.
  14. Fare clic su SERVICEPRINCIPAL e nel pannello Valore parametro selezionare ConstantValue per Origine dati, fare clic sull'opzione True e quindi fare clic su OK.Click SERVICEPRINCIPAL, and in the Parameter Value blade, select ConstantValue for the Data source, click the option True, and then click OK.
  15. Fare clic su TENANTID e nel pannello Valore parametro selezionare Output attività per Origine dati.Click TENANTID, and in the Parameter Value blade, select Activity output for the Data source. Selezionare Get Run As Connection dall'elenco, digitare TenantId nella casella di testo Percorso campo e quindi fare clic su OK due volte.Select Get Run As Connection from the list, in the Field path textbox type TenantId, and then click OK twice.
  16. Nel controllo Libreria digitare Set-AzureRmContext nella casella di testo di ricerca.In the Library control, type Set-AzureRmContext in the search textbox.
  17. Aggiungere Set-AzureRmContext all'area di disegno.Add Set-AzureRmContext to the canvas.
  18. Nell'area di disegno selezionare Set-AzureRmContext e nel riquadro del controllo Configurazione digitare Specify Subscription Id nella casella di testo Etichetta.On the canvas, select Set-AzureRmContext and in the Configuration control pane type Specify Subscription Id in the Label textbox.
  19. Fare clic su Parametri per visualizzare il pannello Configurazione parametro attività.Click Parameters and the Activity Parameter Configuration blade appears.
  20. Set-AzureRmContext include più set di parametri, quindi è necessario selezionarne uno prima di poterne indicare i valori.Set-AzureRmContext has multiple parameter sets, so we need to select one before we can provide parameter values. Fare clic su Set di parametri e quindi selezionare il set di parametri SubscriptionId.Click Parameter Set and then select the SubscriptionId parameter set.
  21. Dopo aver selezionato il set di parametri, nel pannello Configurazione parametro attività vengono visualizzati i parametri.Once you select the parameter set, the parameters are displayed in the Activity Parameter Configuration blade. Fare clic su SubscriptionIDClick SubscriptionID
  22. Nel pannello Valore parametro selezionare Asset variabile per Origine dati, selezionare AzureSubscriptionId dall'elenco e quindi fare clic su OK due volte.In the Parameter Value blade, select Variable Asset for the Data source and select AzureSubscriptionId from the list and then click OK twice.
  23. Passare il puntatore su Login to Azure finché non viene visualizzato un cerchio nella parte inferiore della forma.Hover over Login to Azure until a circle appears on the bottom of the shape. Fare clic sul cerchio e trascinare la freccia su Specify Subscription Id.Click the circle and drag the arrow to Specify Subscription Id.

A questo punto l'aspetto del runbook sarà simile al seguente: Your runbook should look like the following at this point:
Configurazione dell'autenticazione runbook

Passaggio 7: Aggiungere l'attività per avviare una macchina virtualeStep 7 - Add activity to start a virtual machine

Qui viene aggiunta un'attività Start-AzureRmVM per avviare una macchina virtuale.Here we add a Start-AzureRmVM activity to start a virtual machine. È possibile selezionare una macchina virtuale qualsiasi nella sottoscrizione di Azure. Per ora il nome sarà hardcoded nel cmdlet.You can pick any virtual machine in your Azure subscription, and for now you hardcode that name into the cmdlet.

  1. Nel controllo Libreria digitare Start-AzureRm nella casella di testo di ricerca.In the Library control, type Start-AzureRm in the search textbox.
  2. Aggiungere Start-AzureRmVM all'area di disegno e quindi trascinarla sotto Specify Subscription Id.Add Start-AzureRmVM to the canvas and then click and drag it underneath Specify Subscription Id.
  3. Passare il puntatore su Specify Subscription Id finché non viene visualizzato un cerchio nella parte inferiore della forma.Hover over Specify Subscription Id until a circle appears on the bottom of the shape. Fare clic sul cerchio e trascinare la freccia su Start-AzureRmVM.Click the circle and drag the arrow to Start-AzureRmVM.
  4. Selezionare Start-AzureRmVM.Select Start-AzureRmVM. Fare clic su Parametri e quindi su Set di parametri per visualizzare i set per Start-AzureRmVM.Click Parameters and then Parameter Set to view the sets for Start-AzureRmVM. Selezionare il set di parametri ResourceGroupNameParameterSetName .Select the ResourceGroupNameParameterSetName parameter set. Si noti che accanto a ResourceGroupName e Name sono presenti punti esclamativi.Note that ResourceGroupName and Name have exclamation points next them. Indicano che si tratta di parametri obbligatori.This indicates that they are required parameters. Si noti anche che i valori previsti per entrambi sono stringhe.Also note both expect string values.
  5. Selezionare Name.Select Name. Selezionare Espressione PowerShell in Origine dati e digitare il nome della macchina virtuale, racchiuso tra virgolette doppie, che viene avviata con questo runbook.Select PowerShell expression for the Data source and type in the name of the virtual machine surrounded with double quotes that we start with this runbook. Fare clic su OK.Click OK.
    Valore del parametro Name di Start-AzureRmVMStart-AzureRmVM Name Parameter Value
  6. Selezionare ResourceGroupName.Select ResourceGroupName. Usare Espressione PowerShell in Origine dati e digitare il nome del gruppo di risorse racchiuso tra virgolette doppie.Use PowerShell expression for the Data source and type in the name of the resource group surrounded with double quotes. Fare clic su OK.Click OK.
    Parametri di Start-AzureRmVMStart-AzureRmVM Parameters
  7. Fare clic sul riquadro Test in modo da testare il runbook.Click Test pane so that we can test the runbook.
  8. 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.

A questo punto l'aspetto del runbook sarà simile al seguente: Your runbook should look like the following at this point:
Configurazione dell'autenticazione runbook

Passaggio 8: Aggiungere altri parametri di input al runbookStep 8 - Add additional input parameters to the runbook

Il runbook avvia attualmente la macchina virtuale nel gruppo di risorse specificato nel cmdlet Start-AzureRmVM.Our runbook currently starts the virtual machine in the resource group that we specified in the Start-AzureRmVM cmdlet. Il runbook sarebbe più utile se si potesse specificarli entrambi quando viene avviato.Our runbook would be more useful if we could specify both when the runbook is started. Per fornire questa funzionalità, si aggiungeranno ora dei parametri di input al runbook.We now add input parameters to the runbook to provide that functionality.

  1. Aprire l'editor grafico facendo clic su Modifica nel pannello MyFirstRunbook.Open the graphical editor by clicking Edit on the MyFirstRunbook pane.
  2. Fare clic su Input e output e quindi su Aggiungi input per aprire il riquadro Parametro di input runbook.Click Input and output and then Add input to open the Runbook Input Parameter pane.
    Input e output del runbookRunbook Input and Output
  3. Specificare VMName per Nome.Specify VMName for the Name. Mantenere stringa come Tipo, ma cambiare Obbligatorio in .Keep string for the Type, but change Mandatory to Yes. Fare clic su OK.Click OK.
  4. Creare un secondo parametro di input obbligatorio denominato ResourceGroupName e quindi fare clic su OKper chiudere il riquadro Input e output.Create a second mandatory input parameter called ResourceGroupName and then click OK to close the Input and Output pane.
    Parametri di input del runbookRunbook Input Parameters
  5. Selezionare l'attività Start-AzureRmVM e quindi fare clic su Parametri.Select the Start-AzureRmVM activity and then click Parameters.
  6. Cambiare Origine dati per Nome in Input runbook e quindi selezionare VMName.Change the Data source for Name to Runbook input and then select VMName.
  7. Cambiare Origine dati per ResourceGroupName in Input runbook e quindi selezionare ResourceGroupName.Change the Data source for ResourceGroupName to Runbook input and then select ResourceGroupName.
    Parametri Start-AzureVMStart-AzureVM Parameters
  8. 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 you use in the test.
  9. Chiudere il riquadro Test.Close the Test pane.
  10. Fare clic su Pubblica per pubblicare la nuova versione del runbook.Click Publish to publish the new version of the runbook.
  11. Arrestare la macchina virtuale avviata nel passaggio precedente.Stop the virtual machine that you started in the previous step.
  12. 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
  13. Quando il runbook viene completato, controllare che la macchina virtuale sia stata avviata.When the runbook completes, check that the virtual machine was started.

Ora si modificherà il runbook in modo che provi solo ad avviare la macchina virtuale, se non è già avviata.We now modify the runbook so that it only attempts to start the virtual machine if it is not already started. Per eseguire questa operazione, aggiungere al runbook un cmdlet Get-AzureRmVM che otterrà lo stato della macchina virtuale a livello di istanza.You do this by adding a Get-AzureRmVM cmdlet to the runbook that gets the instance level status of the virtual machine. Verrà quindi aggiunto un modulo Codice del flusso di lavoro PowerShell denominato Get Status con un frammento di codice PowerShell per determinare se lo stato della macchina virtuale è in esecuzione o arrestato.Then you add a PowerShell Workflow code module called Get Status with a snippet of PowerShell code to determine if the virtual machine state is running or stopped. Un collegamento condizionale dal modulo Get Status eseguirà Start-AzureRmVM solo se lo stato di esecuzione corrente è arrestato.A conditional link from the Get Status module only runs Start-AzureRmVM if the current running state is stopped. Infine si genererà un messaggio per informare se la VM è stata avviata correttamente o meno usando il cmdlet Write-Output di PowerShell.Finally, we output a message to inform you if the VM was successfully started or not using the PowerShell Write-Output cmdlet.

  1. Aprire MyFirstRunbook nell'editor grafico.Open MyFirstRunbook in the graphical editor.
  2. Rimuovere il collegamento tra Specify Subscription Id e Start-AzureRmVM facendo clic su di esso e quindi premendo CANC.Remove the link between Specify Subscription Id and Start-AzureRmVM by clicking on it and then pressing the Delete key.
  3. Nel controllo Libreria digitare Get-AzureRm nella casella di testo di ricerca.In the Library control, type Get-AzureRm in the search textbox.
  4. Aggiungere Get-AzureRmVM all'area di disegno.Add Get-AzureRmVM to the canvas.
  5. Selezionare Get-AzureRmVM e quindi Set di parametri per visualizzare i set per Get-AzureRmVM.Select Get-AzureRmVM and then Parameter Set to view the sets for Get-AzureRmVM. Selezionare il set di parametri GetVirtualMachineInResourceGroupNameParamSet .Select the GetVirtualMachineInResourceGroupNameParamSet parameter set. Si noti che accanto a ResourceGroupName e Name sono presenti punti esclamativi.Note that ResourceGroupName and Name have exclamation points next them. Indicano che si tratta di parametri obbligatori.This indicates that they are required parameters. Si noti anche che i valori previsti per entrambi sono stringhe.Also note both expect string values.
  6. In Origine dati per Nome selezionare Input runbook e quindi selezionare VMName.Under Data source for Name, select Runbook input and then select VMName. Fare clic su OK.Click OK.
  7. In Origine dati per ResourceGroupName selezionare Input runbook e quindi selezionare ResourceGroupName.Under Data source for ResourceGroupName, select Runbook input and then select ResourceGroupName. Fare clic su OK.Click OK.
  8. In Origine dati per Stato selezionare Valore costante e quindi fare clic su True.Under Data source for Status, select Constant value and then click True. Fare clic su OK.Click OK.
  9. Creare un collegamento da Specify Subscription Id a Get-AzureRmVM.Create a link from Specify Subscription Id to Get-AzureRmVM.
  10. Nel controllo Libreria espandere Controllo Runbook e aggiungere Codice all'area di disegno.In the library control, expand Runbook Control and add Code to the canvas.
  11. Creare un collegamento da Get-AzureRmVM a Codice.Create a link from Get-AzureRmVM to Code.
  12. Fare clic su Codice e nel riquadro Configurazione impostare l'etichetta su Get Status.Click Code and in the Configuration pane, change label to Get Status.
  13. Selezionare il parametro Codice per visualizzare il pannello Editor di codice.Select Code parameter, and the Code Editor blade appears.
  14. Nell'editor di codice incollare il frammento di codice seguente:In the code editor, paste the following snippet of code:

    $StatusesJson = $ActivityOutput['Get-AzureRmVM'].StatusesText
    $Statuses = ConvertFrom-Json $StatusesJson
    $StatusOut =""
    foreach ($Status in $Statuses){
    if($Status.Code -eq "Powerstate/running"){$StatusOut = "running"}
    elseif ($Status.Code -eq "Powerstate/deallocated") {$StatusOut = "stopped"}
    }
    $StatusOut
    
  15. Creare un collegamento da Get Status a Start-AzureRmVM.Create a link from Get Status to Start-AzureRmVM.
    Runbook con il modulo CodeRunbook with Code Module
  16. Selezionare il collegamento e nel riquadro Configurazione impostare Applica condizione su .Select the link and in the Configuration pane, change Apply condition to Yes. Si noti che il collegamento si trasforma in una linea tratteggiata per indicare che l'attività di destinazione verrà eseguita solo se la condizione restituisce true.Note the link turns to a dashed line indicating that the target activity only runs if the condition resolves to true.
  17. Per Espressione condizionedigitare $ActivityOutput['Get Status'] -eq "Stopped".For the Condition expression, type $ActivityOutput['Get Status'] -eq "Stopped". Start-AzureRmVM verrà ora eseguito solo se la macchina virtuale è arrestata.Start-AzureRmVM now only runs if the virtual machine is stopped.
  18. Nel controllo Libreria, espandere Cmdlets e quindi Microsoft.PowerShell.Utility.In the Library control, expand Cmdlets and then Microsoft.PowerShell.Utility.
  19. Aggiungere Write-Output all'area di disegno due volte.Add Write-Output to the canvas twice.
    Runbook con Write-OutputRunbook with Write-Output
  20. Nel primo controllo Write-Output fare clic su Parametri e cambiare il valore di Etichetta in Notify VM Started.On the first Write-Output control, click Parameters and change the Label value to Notify VM Started.
  21. Per InputObject cambiare Origine dati in Espressione PowerShell e digitare l'espressione "$VMName successfully started."For InputObject, change Data source to PowerShell expression and type in the expression "$VMName successfully started.".
  22. Nel secondo controllo Write-Output fare clic su Parametri e cambiare il valore di Etichetta in Notify VM Start FailedOn the second Write-Output control, click Parameters and change the Label value to Notify VM Start Failed
  23. Per InputObject cambiare Origine dati in Espressione PowerShell e digitare l'espressione "$VMName could not start."For InputObject, change Data source to PowerShell expression and type in the expression "$VMName could not start.".
  24. Creare un collegamento da Start-AzureRmVM a Notify VM Started e Notify VM Start Failed.Create a link from Start-AzureRmVM to Notify VM Started and Notify VM Start Failed.
  25. Selezionare il collegamento a Notify VM Started e impostare Applica condizione su True.Select the link to Notify VM Started and change Apply condition to True.
  26. Per Espressione condizionedigitare $ActivityOutput['Start-AzureRmVM'].IsSuccessStatusCode -eq $true.For the Condition expression, type $ActivityOutput['Start-AzureRmVM'].IsSuccessStatusCode -eq $true. Questo controllo Write-Output verrà ora eseguito solo se la macchina virtuale viene avviata correttamente.This Write-Output control now only runs if the virtual machine is successfully started.
  27. Selezionare il collegamento a Notify VM Start Failed e impostare Applica condizione su True.Select the link to Notify VM Start Failed and change Apply condition to True.
  28. Per Espressione condizionedigitare $ActivityOutput['Start-AzureRmVM'].IsSuccessStatusCode -ne $true.For the Condition expression, type $ActivityOutput['Start-AzureRmVM'].IsSuccessStatusCode -ne $true. Questo controllo Write-Output verrà ora eseguito solo se la macchina virtuale non viene avviata correttamente.This Write-Output control now only runs if the virtual machine is not successfully started.
  29. Salvare il runbook e aprire il riquadro Test.Save the runbook and open the Test pane.
  30. Avviare il runbook con la macchina virtuale arrestata, che dovrebbe essere avviata.Start the runbook with the virtual machine stopped, and it should start.

Passaggi successiviNext steps