Configurar computadores para um estado desejado
Observação
O State Configuration da Automação do Azure será desativado em 30 de setembro de 2027, faça a transição para a Configuração de Máquina do Azure até essa data. Para saber mais, confira a postagem no blog sobre o anúncio. O serviço de Configuração de Máquina do Azure combina recursos da Extensão DSC, da Configuração de Estado da Automação do Azure e dos recursos mais solicitados por meio de comentários dos clientes. A Configuração de Máquinas do Azure também inclui suporte a máquina híbrida por meio servidores habilitados para Arc.
Cuidado
O DSC de Automação do Azure para Linux foi desativado em 30 de setembro de 2023. Para obter mais informações, confira o comunicado.
A Configuração do Estado de Automação do Azure permite que você especifique configurações para seus servidores e garanta que esses servidores estejam no estado especificado ao longo do tempo.
- Carregar uma VM para ser gerenciada pela DSC de Automação do Azure
- Carregar uma configuração para Automação do Azure
- Compilar uma configuração em uma configuração de nó
- Atribuir uma configuração de nó a um nó gerenciado
- Verificar o status de conformidade de um nó gerenciado
Para este tutorial, usamos uma configuração DSC simples que garanta que o IIS seja instalado na VM.
Pré-requisitos
- Uma conta de Automação do Azure. Para saber mais sobre uma conta de automação e seus requisitos, consulte visão geral da autenticação da conta de automação.
- Uma VM do Azure Resource Manager (não clássica) executando o Windows Server 2008 R2 ou posterior. Para obter instruções sobre como criar uma VM, veja Criação da primeira máquina virtual do Windows no portal do Azure.
- Versão de módulo do Azure PowerShell 3.6 ou posterior. Execute
Get-Module -ListAvailable Az
para encontrar a versão. Se você precisa atualizar, consulte Instalar o módulo do Azure PowerShell. - Familiaridade com a Configuração do Estado Desejado (DSC). Para obter informações sobre a plataforma DSC, veja Visão Geral da Desired State Configuration do Windows PowerShell.
Suporte para configurações parciais
O serviço State Configuration da Automação do Azure dá suporte ao uso de configurações parciais. Nesse cenário, a plataforma DSC é configurada para gerenciar várias configurações de forma independente, e cada configuração é recuperada da automação do Azure. No entanto, apenas uma configuração pode ser atribuída a um nó por conta de automação. Isso significa que se você estiver usando duas Configurações para um nó, precisará de duas contas de Automação.
Para obter detalhes sobre como registrar uma configuração parcial de um serviço de pull, veja a documentação sobre configurações parciais.
Para obter mais informações sobre como as equipes podem trabalhar em conjunto para gerenciar servidores de forma colaborativa usando a configuração como código, veja Noções básicas sobre a função da plataforma DSC em um pipeline de CI/CD.
Entrar no Azure
Entre na sua assinatura do Azure com o cmdlet Connect-AzAccount e siga o trajeto na tela.
Connect-AzAccount
Criar e carregar uma configuração na Automação do Azure
Em um editor de texto, digite o seguinte e salve localmente como TestConfig.ps1.
configuration TestConfig {
Node WebServer {
WindowsFeature IIS {
Ensure = 'Present'
Name = 'Web-Server'
IncludeAllSubFeature = $true
}
}
}
Observação
Os nomes de configuração na Automação do Azure devem ser limitados a no máximo 100 caracteres.
Em cenários mais avançados que exigem a importação de vários módulos que forneçam recursos da plataforma DSC, verifique se cada módulo tem uma linha de Import-DscResource
exclusiva em sua configuração.
Chame o cmdlet Import-AzAutomationDscConfiguration para carregar a configuração na conta de automação.
$importAzAutomationDscConfigurationSplat = @{
SourcePath = 'C:\DscConfigs\TestConfig.ps1'
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
Published = $true
}
Import-AzAutomationDscConfiguration @importAzAutomationDscConfigurationSplat
Compilar uma configuração em uma configuração de nó
Uma configuração DSC deverá ser compilada em uma configuração de nó para que ela possa ser atribuída a um nó. Confira Configurações DSC.
Chame o cmdlet Start-AzAutomationDscCompilationJob para compilar a configuração de TestConfig
em uma configuração de nó chamada TestConfig.WebServer
em sua conta de automação.
$startAzAutomationDscCompilationJobSplat = @{
ConfigurationName = 'TestConfig'
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
}
Start-AzAutomationDscCompilationJob @startAzAutomationDscCompilationJobSplat
Registrar uma VM a ser gerenciada pela Configuração do Estado
É possível usar a Configuração de Estado da Automação do Azure para gerenciar VMs do Azure (tanto Clássica quanto do Gerenciador de Recursos), VMs locais, computadores Linux, VMs de AWS e computadores físicos locais. Neste artigo, cobrimos como registrar apenas VMs do Azure Resource Manager. Para obter mais informações sobre como registrar outros tipos de computadores, consulte Integrar computadores para gerenciamento por Configuração de Estado da Automação do Azure.
Chame o cmdlet Register-AzAutomationDscNode para registrar sua VM com State Configuration na Automação do Azure como um nó gerenciado.
$registerAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
AzureVMName = 'DscVm'
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat
Especificar definições do modo de configuração
Use o cmdlet Register-AzAutomationDscNode para registrar uma VM como um nó gerenciado e especifique as propriedades de configuração. Por exemplo, você pode especificar que o estado do computador seja aplicado apenas uma vez, especificando ApplyOnly
como o valor da propriedade ConfigurationMode
. O serviço State Configuration não tenta aplicar a configuração após a verificação inicial.
$registerAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
AzureVMName = 'DscVm'
ConfigurationMode = 'ApplyOnly'
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat```
You can also specify how often DSC checks the configuration state by using the
`ConfigurationModeFrequencyMins` property. For more information about DSC configuration settings,
see [Configuring the Local Configuration Manager][05].
```powershell
# Run a DSC check every 60 minutes
$registerAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
AzureVMName = 'DscVm'
ConfigurationModeFrequencyMins = 60
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat```
## Assign a node configuration to a managed node
Now we can assign the compiled node configuration to the VM we want to configure.
```powershell
# Get the ID of the DSC node
$getAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
Name = 'DscVm'
}
$node = Get-AzAutomationDscNode @getAzAutomationDscNodeSplat
# Assign the node configuration to the DSC node
$setAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
NodeConfigurationName = 'TestConfig.WebServer'
NodeId = $node.Id
}
Set-AzAutomationDscNode @setAzAutomationDscNodeSplat
Isso atribui a configuração de nó denominada TestConfig.WebServer
ao nó de DSC registrado chamado DscVm
.
Por padrão, o nó de DSC é verificado quanto à conformidade com a configuração do nó a cada 30 minutos. Para obter informações de como alterar o intervalo de verificação de conformidade, consulte Configurando System Center Configuration Manager Local.
Verificar o status de conformidade de um nó gerenciado
Obtenha relatórios sobre o status de conformidade de um nó gerenciado usando o cmdlet Get-AzAutomationDscNodeReport.
# Get the ID of the DSC node
$getAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
Name = 'DscVm'
}
$node = Get-AzAutomationDscNode @getAzAutomationDscNodeSplat
# Get an array of status reports for the DSC node
$getAzAutomationDscNodeReportSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
NodeId = $node.Id
}
$reports = Get-AzAutomationDscNodeReport @getAzAutomationDscNodeReportSplat
# Display the most recent report
$reports[0]
Próximas etapas
- Para começar, veja Introdução ao serviço State Configuration da Automação do Azure.
- Para saber como habilitar os nós, confira Habilitar o serviço State Configuration da Automação do Azure.
- Para saber como compilar configurações DSC para que possam ser atribuídas a nós de destino, confira Compilar configurações DSC no State Configuration da Automação do Azure.
- Para ver um exemplo de uso do State Configuration da Automação do Azure em um pipeline de implantação contínua, confira Configurar implantação contínua com Chocolatey.
- Para obter informações sobre preços, veja Preços do serviço State Configuration da Automação do Azure.
- Para obter uma referência de cmdlet do PowerShell, confira Az.Automation.