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
Selecione o workspace Automação.
Na parte superior da janela, selecione Ativos.
Na parte inferior da janela, selecione Adicionar configuração.
Selecione Adicionar credencial.
No menu suspenso Tipo de Credencial, selecione a Credencial do PowerShell.
Insira um nome para a credencial na caixa Nome.
Selecione a seta para a direita.
Insira os valores de cada propriedade.
Selecione a marca de seleção para salvar a credencial.
Crie um certificado no
Portal de Gerenciamento
Selecione o workspace Automação.
Na parte superior da janela, selecione Ativos.
Na parte inferior da janela, selecione Adicionar configuração.
Selecione Adicionar credencial.
No menu suspenso Tipo de Credencial, selecione Certificado.
Insira um nome para o certificado na caixa Nome.
Selecione a seta para a direita.
Selecione Procurar arquivo e navegue até um arquivo .cer ou .pfx.
Se você selecionou um arquivo .pfx, forneça sua senha.
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
Selecione o workspace Automação.
Na parte superior da janela, selecione Ativos.
Na parte inferior da janela, selecione Adicionar configuração.
Selecione Adicionar Conexão.
Na lista suspensa Tipo de conexão , selecione um tipo de conexão.
Insira um nome para a conexão na caixa Nome.
Selecione a seta para a direita.
Insira um valor para cada propriedade.
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
Selecione o workspace Automação.
Na parte superior da janela, selecione Ativos.
Na parte inferior da janela, selecione Adicionar configuração.
Selecione Adicionar variável.
Na lista suspensa Tipo , selecione um tipo de dados.
Insira um nome para a variável na caixa Nome.
Selecione a seta para a direita.
Insira um valor para a variável e especifique se deseja criptografá-la.
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
- Leia sobre como criar um módulo de integração.
- Leia sobre a criação de runbooks de automação.