Share via


Procédure : démarrer un runbook

 

Publication: mars 2016

S'applique à: Windows Azure Pack for Windows Server

Pour démarrer un runbook dans Service Management Automation, vous pouvez utiliser l’une des trois méthodes suivantes.

Les deux premières méthodes sont documentées ci-dessous. L’appel d’un runbook à partir d’un autre runbook est documenté dans Démarrage d'un Runbook à partir d'un autre Runbook.

Pour démarrer un runbook à partir du portail de gestion Microsoft Azure Pack

  1. Dans le portail de gestion, sélectionnez Automation dans le volet gauche.

  2. Sélectionnez l'onglet Runbooks.

  3. Sélectionnez un runbook, puis cliquez sur Démarrer.

  4. Si le runbook a des paramètres, vous êtes invité à fournir des valeurs pour chacun d’eux dans une zone de texte. Les paramètres booléens et datetime présentent des sélecteurs spéciaux à la place de la zone de texte standard. Pour plus d’informations sur les paramètres, consultez Paramètres d’un runbook ci-dessous.

  5. Sélectionnez Afficher la tâche en regard du message Démarrage du Runbook ou sélectionnez l’onglet Tâches du runbook pour afficher l’état de la tâche.

Pour démarrer un runbook avec Windows PowerShell

Vous pouvez utiliser Start-SmaRunbook pour démarrer un runbook avec Windows PowerShell. L’exemple de code suivant démarre un runbook appelé Test-Runbook.

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

Start-SmaRunbook retourne un objet de tâche que vous pouvez utiliser pour suivre son état une fois le runbook démarré. Vous pouvez ensuite utiliser cet objet de tâche avec Get-SmaJob pour déterminer l’état de la tâche et avec Get-SmaJobOutput pour obtenir sa sortie. L’exemple de code suivant démarre un runbook appelé Test-Runbook, attend qu’il ait terminé, puis affiche sa sortie.

$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

Si le runbook exige des paramètres, vous devez lui fournir sous forme d’une table de hachage où la clé de la table de hachage correspond au nom de paramètre et la valeur à la valeur du paramètre. L’exemple suivant montre comment démarrer un runbook avec deux paramètres de chaîne nommés FirstName et LastName, un entier nommé RepeatCount et un paramètre booléen nommé Show. Pour plus d’informations sur les paramètres, consultez Paramètres d’un runbook ci-dessous.

$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

Paramètres d’un runbook

Les paramètres sont des valeurs dont un runbook a besoin au démarrage. Par exemple, un runbook qui crée une machine virtuelle dispose sans doute d’un paramètre vous permettant de spécifier le nom de l’ordinateur. Si un paramètre est obligatoire, vous devez fournir une valeur quand vous démarrez le runbook. Si un paramètre n’est pas obligatoire, vous pouvez ou non entrer une valeur.

Quand vous démarrez un runbook à l’aide du portail de gestion ou de Windows PowerShell, l’instruction est envoyée via le service web Automation. Ce service ne prend pas en charge les paramètres avec des types de données complexes. Si vous devez fournir une valeur pour un paramètre complexe, vous devez l’appeler en mode inline à partir d’un autre runbook, comme décrit dans Démarrage d'un Runbook à partir d'un autre Runbook.

Le service web Automation fournit des fonctionnalités spéciales pour les paramètres utilisant certains types de données, comme décrit dans les sections suivantes.

Valeurs nommées

Si le paramètre est un type de données [object], vous pouvez utiliser le format JSON suivant pour lui envoyer une liste de valeurs nommées : {"Nom1":Valeur1, "Nom2":Valeur2, "Nom3":Valeur3}. Ces valeurs doivent être des types simples. Le runbook reçoit le paramètre en tant que PSCustomObject avec des propriétés qui correspondent à chaque valeur nommée.

Examinez le runbook test suivant qui accepte un paramètre appelé user.

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

Le texte suivant peut être utilisé pour le paramètre user.

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

Voici la sortie générée.

Joe
Smith
Joe
Smith

Tableaux

Si le paramètre est un tableau tel que [array] ou [string[]], vous pouvez utiliser le format JSON suivant pour envoyer une liste de valeurs : [Valeur1, Valeur2, Valeur3]. Ces valeurs doivent être des types simples.

Examinez le runbook test suivant qui accepte un paramètre appelé user.

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

Le texte suivant peut être utilisé pour le paramètre user.

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

Voici la sortie générée.

Joe
Smith
Joe
Smith

Informations d'identification

Si le paramètre est un type de données [PSCredential], vous pouvez fournir le nom d’une ressource d’informations d’identification Service Management Automation. Le runbook récupère la ressource d’informations d’identification portant le nom que vous spécifiez.

Examinez le runbook test suivant qui accepte un paramètre appelé credential.

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

Le texte suivant peut être utilisé pour le paramètre user en supposant qu’il existe une ressource d’informations d’identification appelée MyCredential.

MyCredential

Si le nom d’utilisateur dans les informations d’identification est jsmith, la sortie suivante est générée.

jsmith

Voir aussi

Service Management Automation
Opérations de runbook (ancienne version) [SMA]
Démarrage d'un Runbook à partir d'un autre Runbook