Delen via


Een runbook starten

 

Gepubliceerd: maart 2016

Van toepassing op: Windows Azure Pack for Windows Server

U kunt een van de volgende drie methoden gebruiken om een runbook in Automatisering van servicebeheer te starten.

De eerste twee methoden worden hieronder gedocumenteerd.Het aanroepen van een runbook vanuit een ander runbook wordt gedocumenteerd in Een runbook starten vanuit een ander runbook.

Een Runbook starten vanuit de Windows Azure Pack-beheerportal

  1. Selecteer in het linkerdeelvenster van de beheerportal de optie Automatisering.

  2. Selecteer het tabblad Runbooks.

  3. Selecteer een runbook en klik vervolgens op Start.

  4. Als het runbook parameters heeft, wordt u gevraagd om voor elke parameter waarden met een tekstvak op te geven.De Boole- en datum/tijd-parameters hebben speciale kiezers in plaats van het standaardtekstvak.Zie Runbookparameters hieronder voor meer informatie over paramters.

  5. Selecteer Taak weergeven naast het bericht Runbook starten of selecteer het tabblad Taken voor het runbook om de status van de taak weer te geven.

Een runbook starten met Windows PowerShell

U kunt Start-SmaRunbook gebruiken om een runbook met Windows PowerShell te starten.Met de volgende voorbeeldcode wordt een runbook met de naam Test-Runbook gestart.

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
Start-SmaRunbook –WebServiceEndpoint $webServer –Port $port –Name $runbookName

Start SmaRunbook retourneert een taakobject dat u kunt gebruiken om de status van een runbook bij te houden zodra het runbook is gestart.U kunt dit object vervolgens gebruiken met Get-SmaJob om de status van de taak te bepalen en met Get-SmaJobOutput om de uitvoer te verkrijgen.Met de volgende voorbeeldcode wordt een runbook met de naam Test-Runbook gestart, wordt er gewacht totdat het runbook is voltooid en wordt vervolgens de uitvoer weergegeven.

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"

$job = Start-SmaRunbook –WebServiceEndpoint $webServer –Port $port –Name $runbookName

$doLoop = $true
While ($doLoop) {
   $job = Get-SmaJob –WebServiceEndpoint $webServer –Port $port -Id $job.Id
   $status = $job.Status
   $doLoop = (($status -ne "Completed") -and ($status -ne "Failed") -and ($status -ne "Suspended") -and ($status -ne "Stopped") 
}

Get-SmaJobOutput –WebServiceEndpoint $webServer –Port $port -Id $job.Id –Stream Output

Als het runbook parameters vereist, moet u deze verstrekken als een hashtabel waarbij de sleutel van de hashtabel overeenkomt met de parameternaam en de waarde de waarde van de parameter is.Het volgende voorbeeld laat zien hoe u een runbook met twee reeksparameters met de naam FirstName en LastName, een geheel getal met de naam RepeatCount met de naam en een Boole-parameter met de naam Show start.Zie Runbookparameters hieronder voor meer informatie over parameters.

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"

$params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
Start-SmaRunbook –WebServiceEndpoint $webServer –Port $port –Name $runbookName –Parameters $params

Runbookparameters

Parameters zijn de vereiste waarden voor een runbook wanneer dit wordt gestart.Een runbook waarmee een nieuwe virtuele machine wordt gemaakt, bevat bijvoorbeeld waarschijnlijk een parameter waarvoor u de computernaam moeten opgeven.Als een parameter verplicht is, moet u een waarde voor de parameter opgeven wanneer u het runbook start.Als een parameter niet verplicht is, kunt u een waarde opgeven maar is dit niet vereist.

Wanneer u een runbook start met behulp van de beheerportal of Windows PowerShell, wordt de instructie verzonden via de webservice Automation.Deze service ondersteunt geen parameters met complexe gegevenstypen.Als u een waarde moet opgeven voor een complexe parameter, moet u deze inline vanuit een ander runbook aanroepen, zoals wordt beschreven in Een runbook starten vanuit een ander runbook.

De webservice Automation biedt speciale functionaliteit voor parameters die bepaalde gegevenstypen gebruiken, zoals wordt beschreven in de volgende gedeelten.

Naamwaarden

Als de parameter van het gegevenstype [object] is, kunt u de volgende JSON-indeling gebruiken om een lijst met naamwaarden te versturen: {"Name1":Value1, "Name2":Value2, "Name3":Value3}.Deze waarden moeten eenvoudige typen zijn.Het runbook ontvangt de parameter als een PSCustomObject met eigenschappen die overeenkomen met elke benoemde waarde.

Bekijk het volgende testrunbook dat de parameter user accepteert.

Workflow Test-Parameters
{
   param ( 
      [Parameter(Mandatory=$true)][object]$user
   )
    if ($user.Show) {
        foreach ($i in 1..$user.RepeatCount) {
            $user.FirstName
            $user.LastName
        }
    } 
}

De volgende tekst kan worden gebruikt voor de parameter user.

{"FirstName":"Joe","LastName":"Smith","RepeatCount":2,"Show":true}

Dit resulteert in de volgende uitvoer:

Joe
Smith
Joe
Smith

Matrixen

Als de parameter een matrix is, zoals [array] of [string[]], kunt u de volgende JSON-indeling gebruiken om een lijst met waarden te versturen: [Value1,Value2,Value3].Deze waarden moeten eenvoudige typen zijn.

Bekijk het volgende testrunbook dat de parameter user accepteert.

Workflow Test-Parameters
{
   param ( 
      [Parameter(Mandatory=$true)][array]$user
   )
    if ($user[3]) {
        foreach ($i in 1..$user[2]) {
            $ user[0]
            $ user[1]
        }
    } 
}

De volgende tekst kan worden gebruikt voor de parameter user.

["Joe","Smith",2,true]

Dit resulteert in de volgende uitvoer:

Joe
Smith
Joe
Smith

Referenties

Als de parameter van het gegevenstype [PSCredential] is, kunt u de naam van een Automatisering van servicebeheer-referentie-element opgeven.Het runbook haalt het referentie-element op met de naam die u opgeeft.

Bekijk het volgende testrunbook dat de parameter credential accepteert.

Workflow Test-Parameters
{
   param ( 
      [Parameter(Mandatory=$true)][PSCredential]$credential
   )
   $credential.UserName
}

De volgende tekst kan worden gebruikt voor de gebruiker parameter mits het referentie-element "MyCredential" aanwezig is.

MyCredential

Als de gebruikersnaam in de referentie jsmith is, resulteert dit in de volgende uitvoer.

jsmith