Min första PowerShell Workflow-runbookMy first PowerShell Workflow runbook

Den här självstudien beskriver steg för steg hur du skapar en PowerShell Workflow-runbook i Azure Automation.This tutorial walks you through the creation of a PowerShell Workflow runbook in Azure Automation. Du börjar med en enkel Runbook som du testar och publicerar samtidigt som du förklarar hur du spårar statusen för Runbook-jobbet.You start with a simple runbook that you test and publish while explaining how to track the status of the runbook job. Sedan ändrar du runbook-jobbet så att det hanterar Azure-resurser. I det här exemplet ska det starta en virtuell dator i Azure.Then you modify the runbook to actually manage Azure resources, in this case starting an Azure virtual machine. Slutligen gör du runbooken mer robust genom att lägga till Runbook-parametrar.Lastly you make the runbook more robust by adding runbook parameters.

FörutsättningarPrerequisites

För att kunna genomföra den här kursen behöver du följande:To complete this tutorial, you need the following:

  • En Azure-prenumeration.Azure subscription. Om du inte redan har ett konto kan du aktivera dina MSDN-prenumerantförmåner eller registrera dig för ett kostnadsfritt konto.If you don't have one yet, you can activate your MSDN subscriber benefits or sign up for a free account.
  • Ett Automation-konto för Azure som runbooken ska ligga under och som ska användas för autentisering mot Azure-resurser.Automation account to hold the runbook and authenticate to Azure resources. Det här kontot måste ha behörighet att starta och stoppa den virtuella datorn.This account must have permission to start and stop the virtual machine.
  • En virtuell dator i Azure.An Azure virtual machine. du stoppar och startar datorn så att den inte ska vara en virtuell produktions dator.you stop and start this machine so it shouldn't be a production VM.

Steg 1 – Skapa en ny runbookStep 1 - Create new runbook

Du börjar med att skapa en enkel Runbook som visar texten Hello World.You start by creating a simple runbook that outputs the text Hello World.

  1. Öppna ditt Automation-konto på Azure Portal.In the Azure portal, open your Automation account.

    Automation-kontosidan innehåller en snabb översikt över resurserna i det här kontot.The Automation account page gives you a quick view of the resources in this account. Du bör redan ha vissa tillgångar.You should already have some assets. De flesta av dessa tillgångar är de moduler som ingår automatiskt i ett nytt Automation-konto.Most of those assets are the modules that are automatically included in a new Automation account. Du behöver även autentiseringstillgången som nämns i kravavsnittet.You should also have the Credential asset that's mentioned in the prerequisites.

  2. Öppna listan över runbooks genom att klicka på Runbooks under process automatisering .Click Runbooks under Process Automation to open the list of runbooks.

  3. Skapa en ny Runbook genom att klicka på knappen + Lägg till en Runbook och skapa sedan en ny Runbook.Create a new runbook by clicking on the + Add a runbook button and then Create a new runbook.

  4. Ge runbooken namnet MyFirstRunbook-Workflow.Give the runbook the name MyFirstRunbook-Workflow.

  5. I det här fallet ska du skapa en PowerShell Workflow-Runbook så välj PowerShell-arbetsflöde för Runbook-typ.In this case, you're going to create a PowerShell Workflow runbook so select Powershell Workflow for Runbook type.

  6. Klicka på Skapa för att skapa runbooken och öppna textredigeraren.Click Create to create the runbook and open the textual editor.

Steg 2 – Lägga till kod i runbookenStep 2 - Add code to the runbook

Du kan antingen skriva kod direkt i runbooken eller välja cmdlets, runbooks och resurser från bibliotekskontrollen och lägga till dem i runbooken med eventuella relaterade parametrar.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. I den här genom gången skriver du direkt i runbooken.For this walkthrough, you type directly into the runbook.

  1. Din Runbook är för närvarande Tom med endast det obligatoriska arbets flödets nyckelord, namnet på din Runbook och de klammerparenteser som är i hela arbets flödet.Your runbook is currently empty with only the required workflow keyword, the name of your runbook, and the braces that encases the entire workflow.

    Workflow MyFirstRunbook-Workflow
    {
    }
    
  2. Skriv Write-Output "Hello World."Type Write-Output "Hello World." mellan klammerparenteserna.between the braces.

    Workflow MyFirstRunbook-Workflow
    {
    Write-Output "Hello World"
    }
    
  3. Spara runbooken genom att klicka på Spara.Save the runbook by clicking Save.

Steg 3 – Testa runbookenStep 3 - Test the runbook

Innan du publicerar runbook-jobbet så att den blir tillgänglig i produktionsmiljön testar du den och kontrollerar att den fungerar som den ska.Before you publish the runbook to make it available in production, you want to test it to make sure that it works properly. När du testar en runbook kör du dess utkastversion och visar dess utdata interaktivt.When you test a runbook, you run its Draft version and view its output interactively.

  1. Öppna testfönstret genom att klicka på Testfönster.Click Test pane to open the Test pane.

  2. Starta testet genom att klicka på Starta.Click Start to start the test. Det här alternativet bör vara det enda aktiverade alternativet.This option should be the only enabled option.

  3. Ett runbook-jobb skapas och dess status visas.A runbook job is created and its status displayed.

    Jobbets status börjar i , vilket betyder att det väntar på att en Runbook Worker i molnet ska vara tillgänglig.The job status will start as Queued indicating that it's waiting for a runbook worker in the cloud to come available. Den flyttar till Start när en arbets tagare anlitar jobbet och Kör sedan när runbooken faktiskt börjar köras.It moves to Starting when a worker claims the job, and then Running when the runbook actually starts running.

  4. När runbook-jobbet är klart visas dess utdata.When the runbook job completes, its output is displayed. I så fall bör du se Hello World.In your case, you should see Hello World.

    Hello World

  5. Gå tillbaka till arbetsytan genom att stänga testfönstret.Close the Test pane to return to the canvas.

Steg 4 – Publicera och starta runbookenStep 4 - Publish and start the runbook

Det runbook-jobb som du har skapat är fortfarande i utkastläge.The runbook that you created is still in Draft mode. Du måste publicera den innan du kan köra den i produktion.You must publish it before you can run it in production. När du publicerar en runbook skriver du över den befintliga publicerade versionen med utkastversionen.When you publish a runbook, you overwrite the existing Published version with the Draft version. I så fall har du inte någon publicerad version än eftersom du nyss skapade runbooken.In your case, you don't have a Published version yet because you just created the runbook.

  1. Klicka på Publicera för att publicera runbooken och sedan på Ja när du uppmanas att göra det.Click Publish to publish the runbook and then Yes when prompted.

  2. Om du rullar åt vänster för att Visa Runbook i fönstret Runbooks nu visas redigerings statusen publicerad.If you scroll left to view the runbook in the Runbooks pane now, it shows an Authoring Status of Published.

  3. Bläddra tillbaka åt höger för att visa fönstret för MyFirstRunbook-Workflow.Scroll back to the right to view the pane for MyFirstRunbook-Workflow. Vi kan använda alternativen längs överkanten för att starta runbooken, schemalägga den så att den startar senare eller skapa en webhook så att den kan startas via ett HTTP-anrop.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. du vill bara starta runbooken genom att klicka på Start och sedan på Ja när du uppmanas till det.you just want to start the runbook so click Start and then Yes when prompted.

    Starta runbooken

  5. Ett jobb fönster öppnas för det Runbook-jobb som du har skapat.A job pane is opened for the runbook job that you created. Du kan stänga det här fönstret, men i det här fallet lämnar du det öppet så att du kan se jobbets förlopp.you can close this pane, but in this case you leave it open so you can watch the job's progress.

  6. Jobbets status visas i jobb Sammanfattning och matchar de status värden som du såg när du testade runbooken.The job status is shown in Job Summary and matches the statuses that you saw when you tested the runbook.

    Jobbsammanfattning

  7. När runbookens status visas som Slutförd klickar du på Utdata.Once the runbook status shows Completed, click Output. Fönstret utdata öppnas och du kan se din Hello World.The Output pane is opened, and you can see your Hello World.

    Jobbsammanfattning

  8. Stäng utdatafönstret.Close the Output pane.

  9. Klicka på Alla loggar för att öppna fönstret Strömmar för runbook-jobbet.Click All Logs to open the Streams pane for the runbook job. Du bör bara se Hello World i utdataströmmen, men den här vyn kan visa andra strömmar för ett Runbook-jobb, till exempel utförlig och fel, om runbooken skriver till dem.you should only see Hello World in the output stream, but this view can show other streams for a runbook job such as Verbose and Error if the runbook writes to them.

    Jobbsammanfattning

  10. Stäng sidan strömmar och jobb sidan för att återgå till sidan MyFirstRunbook.Close the Streams page and the Job page to return to the MyFirstRunbook page.

  11. Klicka på jobb för att öppna sidan jobb för denna Runbook.Click Jobs to open the Jobs page for this runbook. Den här sidan visar alla jobb som skapats av denna Runbook.This page lists all of the jobs created by this runbook. Du bör bara se ett jobb i listan eftersom du bara körde jobbet en gång.you should only see one job listed since you only ran the job once.

    Jobb

  12. Du kan klicka på det här jobbet för att öppna samma jobb sida som du visade när du startade runbooken.You can click on this job to open the same Job page that you viewed when you started the runbook. Med den här åtgärden kan du gå tillbaka i tiden och Visa information om alla jobb som har skapats för en viss Runbook.This action allows you to go back in time and view the details of any job that was created for a particular runbook.

Steg 5 – Lägga till autentisering för att hantera Azure-resurserStep 5 - Add authentication to manage Azure resources

Du har testat och publicerat din runbook, men hittills gör den egentligen inget användbart.You've tested and published your runbook, but so far it doesn't do anything useful. Du vill att den ska hantera Azure-resurser.You want to have it manage Azure resources. Det kan du inte göra, om du inte har autentiserat med de autentiseringsuppgifter som anges i kraven.It can't do that though unless you've authenticated using the credentials that are referred to in the prerequisites. Det gör du med cmdleten Connect-AzureRmAccount .You do that with the Connect-AzureRmAccount cmdlet.

  1. Öppna textredigeraren genom att klicka på Redigera i fönstret MyFirstRunbook-Workflow.Open the textual editor by clicking Edit on the MyFirstRunbook-Workflow pane.

  2. du behöver inte längre Skriv resultatet , så gå vidare och ta bort den.you don't need the Write-Output line anymore, so go ahead and delete it.

  3. Placera markören på en tom rad mellan klammerparenteserna.Position the cursor on a blank line between the braces.

  4. Skriv eller kopiera och klistra in följande kod som hanterar autentiseringen med ditt ”Kör som”-konto för Automation:Type or copy and paste the following code that will handle the authentication with your Automation Run As account:

    # Ensures you do not inherit an AzureRMContext in your runbook
    Disable-AzureRmContextAutosave –Scope Process
    
    $Conn = Get-AutomationConnection -Name AzureRunAsConnection
    Connect-AzureRmAccount -ServicePrincipal -Tenant $Conn.TenantID `
    -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
    
    $AzureContext = Select-AzureRmSubscription -SubscriptionId $Conn.SubscriptionID
    

    Viktigt

    Add-AzureRmAccount och login-AzureRmAccount är nu alias för Connect-AzureRmAccount.Add-AzureRmAccount and Login-AzureRmAccount are now aliases for Connect-AzureRMAccount. Om cmdleten Connect-AzureRMAccount inte finns kan du använda Add-AzureRMAccount eller login -AzureRMAccount, eller så kan du Uppdatera dina moduler i ditt Automation-konto till de senaste versionerna.If the Connect-AzureRMAccount cmdlet does not exist, you can use Add-AzureRmAccount or Login-AzureRmAccount, or you can update your modules in your Automation Account to the latest versions.

Anteckning

Du kan behöva Uppdatera dina moduler även om du precis har skapat ett nytt Automation-konto.You might need to update your modules even though you have just created a new automation account.

  1. Klicka på test fönster så att du kan testa runbooken.Click Test pane so that you can test the runbook.

  2. Starta testet genom att klicka på Starta.Click Start to start the test. När testet är klart visas utdata som liknar de nedan, med grundläggande information från ditt konto.Once it completes, you should receive output similar to the following, displaying basic information from your account. Den här åtgärden bekräftar att autentiseringsuppgiften är giltig.This action confirms that the credential is valid.

    Autentisera

Steg 6 – Lägga till kod för att starta en virtuell datorStep 6 - Add code to start a virtual machine

Nu när din Runbook autentiseras till din Azure-prenumeration kan du hantera resurser.Now that your runbook is authenticating to your Azure subscription, you can manage resources. du lägger till ett kommando för att starta en virtuell dator.you add a command to start a virtual machine. Du kan välja en virtuell dator i din Azure-prenumeration och nu hårdkoda du namnet i runbooken.You can pick any virtual machine in your Azure subscription, and for now you're hardcoding that name in the runbook. Om du hanterar resurser över flera prenumerationer måste du använda parametern -AzureRmContext tillsammans med Get-AzureRmContext.If you're managing resources across multiple subscriptions, you need to use the -AzureRmContext parameter along with Get-AzureRmContext.

  1. Efter Connect-AzureRmAccountskriver du Start-AzureRmVM-Name "VMName"-ResourceGroupName "NameofResourceGroup" och anger namn och resurs grupp namn för den virtuella datorn som ska startas.After Connect-AzureRmAccount, type Start-AzureRmVM -Name 'VMName' -ResourceGroupName 'NameofResourceGroup' providing the name and Resource Group name of the virtual machine to start.

    workflow MyFirstRunbook-Workflow
    {
    # Ensures you do not inherit an AzureRMContext in your runbook
    Disable-AzureRmContextAutosave –Scope Process
    
    $Conn = Get-AutomationConnection -Name AzureRunAsConnection
    Connect-AzureRmAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
    
    $AzureContext = Select-AzureRmSubscription -SubscriptionId $Conn.SubscriptionID
    
    Start-AzureRmVM -Name 'VMName' -ResourceGroupName 'ResourceGroupName' -AzureRmContext $AzureContext
    }
    
  2. Spara runbooken och klicka sedan på test fönster så att du kan testa den.Save the runbook and then click Test pane so that you can test it.

  3. Starta testet genom att klicka på Starta.Click Start to start the test. När testet är klart kontrollerar du att den virtuella datorn har startat.Once it completes, check that the virtual machine was started.

Steg 7 – Lägga till en indataparameter i runbookenStep 7 - Add an input parameter to the runbook

din Runbook startar för närvarande den virtuella datorn som du hårdkodad i runbooken, men det skulle vara mer användbart om du kan ange den virtuella datorn när runbooken startas.your runbook currently starts the virtual machine that you hardcoded in the runbook, but it would be more useful if you could specify the virtual machine when the runbook is started. Du lägger till indataparametrar till Runbook för att tillhandahålla den funktionen.You add input parameters to the runbook to provide that functionality.

  1. Lägg till parametrar för VMName och ResourceGroupName i runbooken och använd dessa variabler med cmdleten Start-AzureRmVM som i exemplet nedan.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
     )
    # Ensures you do not inherit an AzureRMContext in your runbook
    Disable-AzureRmContextAutosave –Scope Process
    
    $Conn = Get-AutomationConnection -Name AzureRunAsConnection
    Connect-AzureRmAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
    Start-AzureRmVM -Name $VMName -ResourceGroupName $ResourceGroupName
    }
    
  2. Spara runbooken och öppna Testfönster.Save the runbook and open the Test pane. Nu kan du ange värden för de två variablerna som finns i testet.You can now provide values for the two input variables that are in the test.

  3. Stäng Testfönster.Close the Test pane.

  4. Klicka på Publicera för att publicera den nya versionen av runbooken.Click Publish to publish the new version of the runbook.

  5. Stoppa den virtuella dator som du startade i föregående steg.Stop the virtual machine that you started in the previous step.

  6. Starta runbooken genom att klicka på Starta.Click Start to start the runbook. Skriv VMName och ResourceGroupName för den virtuella datorn som du ska starta.Type in the VMName and ResourceGroupName for the virtual machine that you're going to start.

    Starta runbooken

  7. När runbooken har slutförts kontrollerar du att den virtuella datorn har startat.When the runbook completes, check that the virtual machine was started.

Nästa stegNext steps