Como iniciar um runbook
Aplica-se a: Windows Azure Pack for Windows Server
Você pode iniciar um runbook no Service Management Automation usando um dos três métodos a seguir.
Portal de gerenciamento
PowerShell
Os primeiros dois métodos estão documentados a seguir. Chamar um runbook de outro runbook está documentado em Iniciando um Runbook por meio de outro Runbook.
Para iniciar um runbook do Portal de Gerenciamento do Azure Pack
No Portal de Gerenciamento, selecione Automação no painel esquerdo.
Selecione a guia Runbooks.
Selecione um runbook e clique em Iniciar.
Se o runbook tiver parâmetros, você deverá fornecer valores com uma caixa de texto para cada parâmetro. Parâmetros boolianos e de datetime têm seletores especiais em vez da caixa de texto padrão. Consulte Parâmetros do runbook abaixo para obter mais detalhes sobre os parâmetros.
SelecioneExibir Trabalho ao lado da mensagem Iniciar runbook ou selecione a guia Trabalhos do runbook para exibir o status do trabalho.
Para iniciar um runbook com o Windows PowerShell
Você pode usar o Start-SmaRunbook para iniciar um runbook com o Windows PowerShell. O código de exemplo a seguir inicia um runbook chamado Test-Runbook.
$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
Start-SmaRunbook –WebServiceEndpoint $webServer –Port $port –Name $runbookName
Start-SmaRunbook retorna um objeto de trabalho que você pode usar para controlar seu status depois que o runbook for iniciado. Você pode usar esse objeto de trabalho com Get-SmaJob para determinar o status do trabalho e Get-SmaJobOutput para obter sua saída. O código de exemplo a seguir inicia um runbook chamado Test-Runbook, aguarda até que ele seja concluído e exibe seu resultado.
$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
Se o runbook exigir parâmetros, você deverá fornecê-los como uma hashtable, em que a chave da hashtable coincide com o nome do parâmetro e o valor é o valor do parâmetro. O exemplo a seguir mostra como iniciar um runbook com dois parâmetros de cadeia de caracteres chamados FirstName e LastName, um número inteiro denominado RepeatCount e um parâmetro booleano denominado Show. Para saber mais sobre parâmetros, confira Parâmetros do runbook abaixo.
$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
Parâmetros do runbook
Parâmetros são valores que um runbook exige quando é iniciado. Por exemplo, um runbook que cria uma nova máquina virtual supostamente teria um parâmetro para você especificar o nome do computador. Se um parâmetro é obrigatório, você deve fornecer um valor a ele quando iniciar o runbook. Se um parâmetro não é obrigatório, você pode fornecer um valor, mas não é necessário.
Quando você inicia um runbook usando o Portal de Gerenciamento ou o Windows PowerShell, a instrução é enviada pelo serviço Web de automação. Esse serviço não dá suporte a parâmetros com tipos de dados complexos. Se você precisa fornecer um valor para um parâmetro complexo, é necessário chamá-lo embutido a partir de outro runbook conforme descrito em Iniciando um Runbook por meio de outro Runbook.
O serviço Web de automação fornecerá uma funcionalidade especial para parâmetros usando certos tipos de dados, conforme descrito nas seções a seguir.
Valores nomeados
Se o parâmetro é do tipo de dados [object], você pode usar o seguinte formato JSON para enviar a ele uma lista de valores nomeados: {"Name1":Value1, "Name2":Value2, "Name3":Value3}. Esses valores devem ser tipos simples. O runbook receberá o parâmetro como um PSCustomObject com propriedades que correspondem a cada valor nomeado.
Considere o seguinte runbook de teste que aceita um parâmetro chamado user.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][object]$user
)
if ($user.Show) {
foreach ($i in 1..$user.RepeatCount) {
$user.FirstName
$user.LastName
}
}
}
O texto a seguir pode ser usado para o parâmetro de usuário.
{"FirstName":"Joe","LastName":"Smith","RepeatCount":2,"Show":true}
O resultado é o seguinte:
Joe
Smith
Joe
Smith
Matrizes
Se o parâmetro é uma matriz, como [matriz] ou [string[]], você pode usar o seguinte formato JSON para enviar a ele uma lista de valores: [Value1,Value2,Value3]. Esses valores devem ser tipos simples.
Considere o seguinte runbook de teste que aceita um parâmetro chamado user.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][array]$user
)
if ($user[3]) {
foreach ($i in 1..$user[2]) {
$ user[0]
$ user[1]
}
}
}
O texto a seguir pode ser usado para o parâmetro de usuário.
["Joe","Smith",2,true]
O resultado é o seguinte:
Joe
Smith
Joe
Smith
Credenciais
Se o parâmetro é do tipo de dados [PSCredential], você pode fornecer o nome de um ativo de credencial do Service Management Automation. O runbook recuperará o ativo de credencial com o nome que você especificar.
Considere o seguinte runbook de teste que aceita um parâmetro chamado credential.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][PSCredential]$credential
)
$credential.UserName
}
O texto a seguir pode ser usado para o parâmetro de usuário supondo que havia um ativo de credencial chamado "MyCredential".
MyCredential
Supondo que o nome de usuário na credencial era fpena, isso resulta na saída a seguir.
jsmith
Consulte também
Service Management Automation
Operações de runbook (antigo) [SMA]
Iniciando um Runbook por meio de outro Runbook