Compartilhar via


Configurar computadores para um estado desejado

Observação

Automação do Azure State Configuration será desativado em 30 de setembro de 2027, faça a transição para Azure Machine Configuration até essa data. Para obter mais informações, consulte o comunicado blog post. O serviço Azure Machine Configuration combina recursos da Extensão DSC, Automação do Azure State Configuration e os recursos mais solicitados por meio de comentários do cliente. Azure Machine Configuration também inclui suporte a máquina híbrida por meio de servidores habilitados para Arc.

Importante

Os links de navegação Adicionar, Compor configuração e Galeria, serão removidos do portal em 31 de março de 2025.

Cuidado

Automação do Azure DSC para Linux se aposentou em 30 de setembro de 2023. Para obter mais informações, confira o comunicado.

Automação do Azure State Configuration permite especificar configurações para seus servidores e garantir que esses servidores estejam no estado especificado ao longo do tempo.

  • Integrar uma VM a ser gerenciada por Automação do Azure DSC
  • 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

Observação

Windows Server 2008 e Windows Server 2008 R2 atingiram o EOS (Fim do Suporte). Para obter mais informações, consulte Fim do suporte para Windows Server 2008 e Windows Server 2008 R2 e Realizar atualização no local para Windows Server 2016, 2019, 2022 ou 2025. Examine o uso e planeje as atualizações e migrações do sistema operacional adequadamente.

Suporte para configurações parciais

Automação do Azure State Configuration dá suporte ao uso de configurações parciais. Nesse cenário, o DSC é configurado para gerenciar várias configurações de forma independente e cada configuração é recuperada de Automação do Azure. No entanto, apenas uma configuração pode ser associada a um nó para cada 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 em sua assinatura Azure com o cmdlet Connect-AzAccount e siga as instruções na tela.

Connect-AzAccount

Criar e carregar uma configuração para 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 em 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 por State Configuration

Você pode usar Automação do Azure State Configuration para gerenciar Azure VMs (clássicas e Resource Manager), VMs locais, computadores Linux, VMs AWS e computadores físicos locais. Neste artigo, abordaremos como registrar apenas Azure Resource Manager VMs. Para obter informações sobre como registrar outros tipos de computadores, consulte Onboarding machines for management by Automação do Azure State Configuration.

Chame o cmdlet Register-AzAutomationDscNode para registrar sua VM com Automação do Azure State Configuration 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. 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, a conformidade do nó DSC é verificada em relação à configuração do nó a cada 30 minutos. Para obter informações sobre como alterar o intervalo de verificação de conformidade, consulte Configurando o Gerenciador de Configurações 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