Compartilhar via


Simplifique a criação de runbooks do Service Management Automation com ativos globais

Os Ativos Globais estão disponíveis para todos os runbooks em um ambiente de Automação. É possível criar e configurá-los por meio do workspace de automação no portal de gerenciamento ou com os cmdlets apropriados no Windows PowerShell. Em um runbook, é possível recuperar e definir valores para ativos globais com atividades no módulo RunbookConstructs . Os cmdlets do Windows PowerShell estão disponíveis para uso em runbooks na Automação de Gerenciamento de Serviços, mas as atividades são recomendadas, pois são mais eficientes porque não precisam funcionar por meio do serviço Web de Automação.

Obter ou definir credenciais

Uma credencial de automação é um nome de usuário e senha que podem ser utilizados com comandos do Windows PowerShell ou um certificado que é carregado para o servidor. As propriedades de uma credencial são armazenadas com segurança no banco de dados de Automação e podem ser acessadas no runbook com a atividade Get-AutomationPSCredential ou Get-AutomationCertificate .

PowerShell para gerenciar credenciais

Você pode usar os cmdlets na tabela a seguir para criar e gerenciar credenciais com o Windows PowerShell no Service Management Automation.

Cmdlets Descrição
Obter Certificado Recupera um certificado de Automação.
Get-SmaCredential Recupera uma credencial do PowerShell de Automação.
Remove-SmaCertificate Remove um certificado de Automação.
Remover-SmaCredential Remove uma credencial do PowerShell de Automação.
Definir-SmaCertificate Cria um novo certificado ou define as propriedades de um certificado existente, incluindo o carregamento do arquivo de certificado e a configuração da senha para um .pfx.
Set-SmaCredential Cria uma nova credencial do PowerShell de Automação ou define as propriedades de uma credencial existente.

PowerShell para trabalhar com credenciais

Você pode usar as atividades na tabela a seguir para acessar as credenciais em um runbook.

Atividades Descrição
Get-AutomationCertificate Obtém um certificado para uso em um runbook.
Get-AutomationPSCredential Obtém uma nome de usuário/senha a serem usados em um runbook.

Observação

Você deve evitar o uso de variáveis no parâmetro "Name of Get-AutomationPSCredential e Get-AutomationCertificate, pois isso pode complicar a descoberta de dependências entre runbooks e variáveis de automação.

Criar uma credencial do PowerShell no Portal de Gerenciamento

  1. Selecione o workspace Automação.

  2. Na parte superior da janela, selecione Ativos.

  3. Na parte inferior da janela, selecione Adicionar configuração.

  4. Selecione Adicionar credencial.

  5. No menu suspenso Tipo de Credencial, selecione a Credencial do PowerShell.

  6. Insira um nome para a credencial na caixa Nome.

  7. Selecione a seta para a direita.

  8. Insira os valores de cada propriedade.

  9. Selecione a marca de seleção para salvar a credencial.

Crie um certificado no

Portal de Gerenciamento

  1. Selecione o workspace Automação.

  2. Na parte superior da janela, selecione Ativos.

  3. Na parte inferior da janela, selecione Adicionar configuração.

  4. Selecione Adicionar credencial.

  5. No menu suspenso Tipo de Credencial, selecione Certificado.

  6. Insira um nome para o certificado na caixa Nome.

  7. Selecione a seta para a direita.

  8. Selecione Procurar arquivo e navegue até um arquivo .cer ou .pfx.

  9. Se você selecionou um arquivo .pfx, forneça sua senha.

  10. Selecione a marca de seleção para salvar o certificado.

Criar uma credencial com o PowerShell

Os seguintes comandos de exemplo mostram como criar uma nova credencial.

$webServer = 'https://MyWebServer'
$port = 9090
$credName = 'MyCredential'
$user = 'contoso\MyUser'
$pwd = ConvertTo-SecureString -String 'P@$$w0rd' -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$pwd

Set-SmaCredential -WebServiceEndpoint $webServer -port $port -Name $credName -Value $cred

Para criar um novo certificado do PowerShell com o Windows PowerShell no Service Management Automation

Os seguintes comandos de exemplo mostram como criar um novo certificado importando um arquivo de certificado.

$webServer = 'https://MyWebServer'
$port = 9090
$certName = 'MyCertificate'
$path = 'c:\certs\MyCertificate.pfx'
$certPwd = ConvertTo-SecureString -String 'P@$$w0rd' -AsPlainText -Force

Set-SmaCertificate -WebServiceEndpoint $webServer -port $port -Name $certName -Path $certPath -Password $certPwd

Usar uma credencial do PowerShell em um runbook

Você recupera uma credencial do PowerShell em um runbook com a atividade Get-AutomationPSCredential . Isso retorna um objeto PSCredential que pode ser usado no fluxo de trabalho.

  • Os comandos de exemplo a seguir mostram como usar uma credencial do PowerShell em um runbook. Neste exemplo, a credencial é usada com uma atividade InlineScript para executar um conjunto de comandos usando credenciais alternativas.

    $myCredential = Get-AutomationPSCredential -Name 'MyCredential'
    InlineScript {
       <Commands>
    } -PSComputerName $ServerName -PSCredential $myCredential
    

Gerenciar conexões SMA

Uma conexão de automação contém as informações necessárias para se conectar a um serviço ou aplicativo de um runbook. Essas informações estão definidas no módulo para o aplicativo e normalmente incluem informações como o nome de usuário e senha, e o computador ao qual se conectar. Outras informações também podem ser necessárias, como um certificado ou uma ID de assinatura. As propriedades de uma conexão são armazenadas com segurança no banco de dados de Automação e podem ser acessadas no runbook com a atividade Get-AutomationConnection .

Cmdlets do Windows PowerShell

Você pode criar e gerenciar credenciais com os cmdlets do Windows PowerShell na tabela a seguir.

Cmdlets Descrição
Get-SmaConnection Recupera os valores de cada campo em uma determinada conexão.
Get-SmaConnectionField Recupera as definições de campo para um determinado tipo de conexão.
Get-SmaConnectionType Recupera os tipos de conexão disponíveis.
New-SmaConnection Cria uma nova conexão.
Remover-SmaConnection Remove uma conexão existente.
Set-SmaConnectionFieldValue Define o valor de determinado campo para uma conexão existente.

Atividades de runbook

Você pode acessar conexões em um runbook com as atividades na tabela a seguir.

Atividades Descrição
Get-AutomationConnection Obtém uma conexão para usar em um runbook.

Criar uma conexão no portal de gerenciamento

  1. Selecione o workspace Automação.

  2. Na parte superior da janela, selecione Ativos.

  3. Na parte inferior da janela, selecione Adicionar configuração.

  4. Selecione Adicionar Conexão.

  5. Na lista suspensa Tipo de conexão , selecione um tipo de conexão.

  6. Insira um nome para a conexão na caixa Nome.

  7. Selecione a seta para a direita.

  8. Insira um valor para cada propriedade.

  9. Selecione a marca de seleção para salvar a conexão.

Criar uma conexão com o Windows PowerShell

Os comandos de exemplo a seguir criam uma nova conexão do Virtual Machine Manager com o nome MyVMMConnection.

Observação

Usamos uma tabela de hash para definir as propriedades da conexão. Isso ocorre porque diferentes tipos de conexões exigem diferentes conjuntos de propriedades. Uma conexão de outro tipo usaria um conjunto diferente de valores de campo.

Para obter informações sobre tabelas de hash, confira about_Hash_Tables.

$webServer = 'https://MyWebServer'
$port = 9090
$connectionName = 'MyConnection'
$fieldValues = @{"Username"="MyUser";"Password"="password";"ComputerName"="MyComputer"}
New-SmaConnection -WebServiceEndpoint $webServer -port $port -Name $connectionName -ConnectionTypeName "VirtualMachineManager" -ConnectionFieldValues $fieldValues

Usar uma conexão em um runbook

Use a atividade Get-AutomationConnection para usar uma conexão em um runbook. Essa atividade recupera os valores dos diferentes campos na conexão e os retorna como uma tabela de hash, que pode ser usada com os comandos apropriados no runbook.

Para obter informações sobre tabelas de hash, confira about_Hash_Tables.

O código de exemplo a seguir mostra como usar uma conexão para fornecer o nome do computador e as credenciais para um bloco InlineScript que executa comandos em outro computador.

$con = Get-AutomationConnection -Name 'MyConnection'
$securepassword = ConvertTo-SecureString -AsPlainText -String $con.Password -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $con.Username, $securepassword
InlineScript {
   <Commands>
} -PSComputerName $con.ComputerName -PSCredential $cred

Simplifique o desenvolvimento de runbooks com variáveis globais

As variáveis de automação são valores disponíveis para todos os runbooks. Você pode criá-los, modificá-los e recuperá-los no portal de gerenciamento, no Windows PowerShell ou em um runbook. As variáveis de automação são úteis para os seguintes cenários:

  • Compartilhar um valor entre vários runbooks.

  • Compartilhar um valor entre vários trabalhos do mesmo runbook.

  • Gerenciar um valor no portal de gerenciamento ou por meio da linha de comando do Windows PowerShell que é usada por runbooks.

As variáveis de automação são mantidas para que continuem disponíveis mesmo se o runbook falhar. Isso também permite que um valor seja definido por um runbook que é usado por outro ou é usado pelo mesmo runbook na próxima vez que for executado.

Quando uma variável é criada, você deve especificar seu tipo de dados por meio da lista a seguir. Isso é para que o portal de gerenciamento possa exibir o controle apropriado para o valor da variável. Você só pode atribuir um valor do tipo correto a uma variável.

  • String

  • Inteiro

  • Booliano

  • Datetime

Quando uma variável é criada, você pode definir que ele seja armazenado criptografado. Quando uma variável é criptografada, ela é armazenada com segurança no banco de dados SMA e seu valor não pode ser recuperado do cmdlet Get-SmaVariable . A única maneira de recuperar um valor criptografado é da atividade Get-AutomationVariable em um runbook. Você pode armazenar vários valores do tipo definido em uma única variável criando uma tabela de hash.

Cmdlets do Windows PowerShell

Você pode criar e gerenciar variáveis com os cmdlets do Windows PowerShell na tabela a seguir.

Cmdlets Descrição
Get-SmaVariable Recupera o valor de uma variável existente.
Definir Variável Cria uma nova variável ou define o valor de uma variável existente.

Atividades de runbook

Você pode acessar variáveis em um runbook com as atividades na tabela a seguir.

Atividades Descrição
Get-AutomationVariable Recupera o valor de uma variável existente.
Set-AutomationVariable Define o valor de uma variável existente.

Observação

Você deve evitar o uso de variáveis no parâmetro "Name de Get-AutomationVariable, pois isso pode complicar a descoberta de dependências entre runbooks e variáveis de automação.

Criar uma nova variável no portal de gerenciamento

  1. Selecione o workspace Automação.

  2. Na parte superior da janela, selecione Ativos.

  3. Na parte inferior da janela, selecione Adicionar configuração.

  4. Selecione Adicionar variável.

  5. Na lista suspensa Tipo , selecione um tipo de dados.

  6. Insira um nome para a variável na caixa Nome.

  7. Selecione a seta para a direita.

  8. Insira um valor para a variável e especifique se deseja criptografá-la.

  9. Selecione a marca de seleção para salvar a nova variável.

Para criar uma nova variável com o Windows PowerShell

O cmdlet Set-SmaVariable cria uma nova variável e também define o valor de uma variável existente. Os comandos de exemplo a seguir mostram como criar uma variável do tipo cadeia de caracteres.

$web = 'https://MySMAServer'
$port = 9090

Set-SMAVariable -WebServiceEndpoint $web -Port $port -Name 'MyVariable' -Value 'My String'

Usar uma variável em um runbook

  • O código de exemplo a seguir mostra como definir e recuperar uma variável em um runbook. Neste exemplo, supõe-se que as variáveis do tipo inteiro chamado NumberOfIterations e NumberOfRunnings e uma variável do tipo cadeia de caracteres chamada SampleMessage já tenham sido criadas.

    $NumberOfIterations = Get-AutomationVariable -Name 'NumberOfIterations'
    $NumberOfRunnings = Get-AutomationVariable -Name 'NumberOfRunnings'
    $SampleMessage = Get-AutomationVariable -Name 'SampleMessage'
    Write-Output "Runbook has been run $NumberOfRunnings times."
    for ($i = 1; $i -le $NumberOfIterations; $i++) {
       Write-Output "$i`: $SampleMessage"
    }
    Set-AutomationVariable -Name NumberOfRunnings -Value (NumberOfRunnings += 1)
    

Próximas etapas