Introdução ao manipulador de extensão de Desired State Configuration do Azure

A Extensão da VM do Azure para máquinas virtuais (VM) do Azure e as extensões associadas fazem parte dos serviços de infraestrutura do Microsoft Azure. Extensões de VM são componentes de software que estendem a funcionalidade da VM e simplificam várias operações de gerenciamento de VM.

O uso principal para a extensão Desired State Configuration (DSC) para Windows PowerShell é inicializar uma VM para o serviço de State Configuration (DSC) da Automação do Azure. O serviço fornece benefícios que incluem o gerenciamento contínuo da configuração da VM e a integração com outras ferramentas operacionais, como o Azure Monitor. Você pode usar a extensão para registrar suas VMs no serviço e obter uma solução flexível que funcione entre assinaturas do Azure.

Você pode executar a extensão DSC independentemente do serviço DSC de Automação, mas esse método apenas envia uma configuração por push para a VM. Nenhum relatório contínuo está disponível, a não ser localmente na VM. Antes de habilitar a extensão DSC, examine as versões de DSC disponíveis e escolha a versão que dá suporte aos seus requisitos de configuração.

Este artigo descreve como usar a extensão DSC para integração de Automação ou usá-la como uma ferramenta para atribuir configurações a VMs com o SDK do Azure.

Versões de disponíveis

Várias versões de Desired State Configuration estão disponíveis para implementação. Antes de habilitar a extensão DSC, escolha a versão de DSC que melhor dá suporte às suas metas de configuração e de negócios.

Versão Disponibilidade Descrição
2.0 Disponibilidade Geral ODesired State Configuration 2.0 tem suporte para uso com o recurso Configuração do Computador do Gerenciamento Automatizado do Azure. O recurso de configuração de computador combina os recursos do manipulador de extensão de DSC, a State Configuration da Automação do Azure e os recursos mais solicitados nos comentários dos clientes. A configuração de máquina também inclui suporte a computadores híbridos por meio de servidores habilitados para Arc.
1.1 Disponibilidade Geral Se a implementação não usar o recurso de configuração do computador do Gerenciamento Automatizado do Azure, você deverá escolher a Desired State Configuration 1.1. Para obter mais informações, consulte PSDesiredStateConfiguration v1.1.
3.0 Versão prévia pública A Desired State Configuration 3.0 está disponível na versão beta pública. Essa versão deve ser usada apenas com a configuração de computador do Azure ou para ambientes de não produção testarem a migração para fora do Desired State Configuration 1.1.

Pré-requisitos

  • Computador local: para interagir com a extensão de VM do Azure, você deve usar o Portal do Azure ou o SDK do Azure PowerShell.

  • Agente convidado: a VM do Azure que é configurada pela configuração de DSC deve ter um sistema operacional compatível com Windows Management Framework (WMF) 4.0 ou posterior. Para a lista completa de versões com suporte do sistema operacional, consulte o Histórico de versões da extensão DSC.

Termos e conceitos

Este guia presume familiaridade com os seguintes conceitos:

  • Configuração: refere-se a um documento de configuração de DSC.

  • : um destino para uma configuração DSC. Neste artigo, sempre refere-se a uma VM do Azure.

  • Os dados de configuração são armazenados em um arquivo de formato DSC do PowerShell (.psd1) que tem dados ambientais para uma configuração.

Arquitetura

A extensão do Azure DSC usa a estrutura da Extensão da VM do Azure para entregar, aplicar e gerar relatórios sobre configurações do DSC executadas em VMs do Azure. A extensão de DSC aceita um documento de configuração e um conjunto de parâmetros. Se nenhum arquivo for fornecido, um script de configuração padrão é inserido com a extensão. O script de configuração padrão é usado somente para definir metadados no Local Configuration Manager.

Quando a extensão é chamada pela primeira vez, ela instala uma versão do WMF usando a lógica a seguir:

  • Se o sistema operacional da VM do Azure for o Windows Server 2016, nenhuma ação é executada. O Windows Server 2016 já possui a versão mais recente do PowerShell instalada.

  • Se a propriedade wmfVersion for especificada, a versão especificada do WMF será instalada, a menos que ela seja incompatível com o sistema operacional na VM.

  • Se nenhuma propriedade wmfVersion for especificada, a versão mais recente de WMF aplicável é instalada.

O processo de instalação do WMF requer uma reinicialização. Após a reinicialização, a extensão faz o download do arquivo .zip que é especificado na propriedade modulesUrl, se fornecido. Se esse local estiver no Armazenamento de Blobs do Azure, você pode especificar um token SAS na propriedade sasToken para acessar o arquivo. Depois que o .zip baixar e for descompactado, a função de configuração definida em configurationFunction executa para gerar um arquivo Managed Object Format (MOF) (.mof). Em seguida, a extensão executa Start-DscConfiguration -Force usando o arquivo .mof gerado. A extensão captura a saída e a grava no canal de status do Azure.

Script de configuração padrão

A extensão de DSC do Azure inclui um script de configuração padrão que é destinado a ser usado quando você integra uma VM ao serviço de State Configuration da Automação do Azure. Os parâmetros do script estão alinhados com as propriedades configuráveis do Gerenciador de Configurações Locais. Para parâmetros de script, consulte Script de configuração padrão em extensão de Desired State Configuration com modelos do Azure Resource Manager. Para o script completo, consulte o Exemplo de Início Rápido do Azure no GitHub.

Registro da State Configuration da Automação do Azure

Ao usar a extensão DSC do Azure para registrar um nó com o serviço State Configuration da Automação do Azure, você fornece os seguintes valores:

  • RegistrationUrl: o endereço https da conta da Automação do Azure.
  • RegistrationKey: um segredo compartilhado usado para registrar nós com o serviço.
  • NodeConfigurationName: o nome da configuração de nó (MOF) a ser extraída do serviço para configurar a função de servidor. O valor é o nome da configuração do nó e não o nome da Configuração.

Você pode coletar esses valores do portal do Azure ou executar os seguintes comandos no Windows PowerShell:

(Get-AzAutomationRegistrationInfo -ResourceGroupName <resourcegroupname> -AutomationAccountName <accountname>).Endpoint
(Get-AzAutomationRegistrationInfo -ResourceGroupName <resourcegroupname> -AutomationAccountName <accountname>).PrimaryKey

Nome do nó de configuração

Para o parâmetro NodeConfigurationName, certifique-se de fornecer o nome da configuração do nó e não o da Configuração.

Uma Configuração é definida em um script que é usado para compilar a Configuração de Nó (arquivo MOF). O nome da configuração do nó é sempre o nome da Configuração seguido por um ponto . e um localhost ou um nome de computador específico.

Aviso

Para o nome da configuração do nó, verifique se a configuração do nó existe na State Configuration da Automação do Azure. Se esse valor não existir, a implantação da extensão retornará uma falha.

Implantação do modelo do ARM

A abordagem mais comum para implantar a extensão DSC é usar modelos do Azure Resource Manager. Para obter mais informações e exemplos sobre como incluir a extensão de DSC em modelos do ARM, consulte Extensão de Desired State Configuration com modelos do ARM.

Implantação de cmdlet do PowerShell

Os cmdlets do PowerShell para gerenciar a extensão DSC são ideais para cenários interativos de solução de problemas e coleta de informações. Você pode usar os cmdlets para empacotar, publicar e monitorar implantações de extensão de DSC. Os cmdlets para a extensão de DSC ainda não foram atualizados para funcionar com o script de configuração padrão.

Aqui estão alguns dos cmdlets do PowerShell que estão disponíveis:

  • O cmdlet Publish-AzVMDscConfiguration recebe um arquivo de configuração, verifica o arquivo para ver se há recursos de DSC dependentes e, em seguida, cria um arquivo .zip. O arquivo. zip contém a configuração e recursos de DSC que são necessários para aplicar a configuração. O cmdlet também pode criar o pacote localmente usando o parâmetro -OutputArchivePath. Caso contrário, o cmdlet publica o arquivo .zip no armazenamento de Blobs e o protege com um token SAS.

    O script de configuraçã do PowerShell (.ps1) criado por esse cmdlet é um arquivo .zip na raiz da pasta de arquivamento. A pasta de módulo é colocada na pasta de arquivamento em recursos.

  • O cmdlet Set-AzVMDscExtension injeta as configurações que a extensão de DSC do PowerShell exige em um objeto de configuração de VM.

  • O cmdlet Get-AzVMDscExtension recupera o status da extensão de DSC de uma VM específica.

  • O cmdlet Get-AzVMDscExtensionStatus recupera o status da configuração de DSC que é imposta pelo manipulador de extensões de DSC. Essa ação pode ser executada em uma única VM ou em um grupo de VMs.

  • O cmdlet Remove-AzVMDscExtension remove o manipulador de extensões de uma VM específica. Tenha em mente que esse cmdlet não remove a configuração, desinstala o WMF ou altera as configurações aplicadas na VM. Apenas remove o manipulador de extensão.

Considerações importantes

Há várias considerações a serem consideradas ao trabalhar com cmdlets do Azure Resource Manager.

  • Os cmdlets do Azure Resource Manager são síncronos.

  • Vários parâmetros são necessários, incluindo ResourceGroupName, VMName, ArchiveStorageAccountName, Versione Location.

  • ArchiveResourceGroupName é um parâmetro opcional. Você pode especificar esse parâmetro quando sua conta de armazenamento pertencer a um grupo de recursos diferente daquele no qual a VM foi criada.

  • Use a opção AutoUpdate para atualizar automaticamente do manipulador de extensão para a versão mais recente quando estiver disponível. Este parâmetro tem o potencial de causar reinicializações na VM quando uma nova versão de WMF for lançada.

Configuração com cmdlets do PowerShell

A extensão de DSC do Azure pode usar documentos de configuração DSC para configurar diretamente VMs do Azure durante a implantação. Essa etapa não registra o nó para Automação. Tenha em mente que o nó não é gerenciado centralmente.

O código a seguir mostra um exemplo de arquivo de configuração. Para trabalhar com este exemplo, salve essa configuração localmente como o arquivo de script iisInstall.ps1.

configuration IISInstall
{
    node "localhost"
    {
        WindowsFeature IIS
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
    }
}

Os seguintes comandos do PowerShell colocam o script iisInstall.ps1 na VM especificada. Os comandos também executar a configuração e, em seguida, reportam o status.

$resourceGroup = 'dscVmDemo'
$vmName = 'myVM'
$storageName = 'demostorage'
#Publish the configuration script to user storage
Publish-AzVMDscConfiguration -ConfigurationPath .\iisInstall.ps1 -ResourceGroupName $resourceGroup -StorageAccountName $storageName -force
#Set the VM to run the DSC configuration
Set-AzVMDscExtension -Version '2.76' -ResourceGroupName $resourceGroup -VMName $vmName -ArchiveStorageAccountName $storageName -ArchiveBlobName 'iisInstall.ps1.zip' -AutoUpdate -ConfigurationName 'IISInstall'

Implantação da CLI do Azure

A CLI do Azure pode ser usada para implantar a extensão DSC em uma VM existente. Os exemplos a seguir mostram como implantar uma VM no Windows.

Para uma VM que executa o Windows, use o seguinte comando:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name DSC \
  --publisher Microsoft.Powershell \
  --version 2.77 --protected-settings '{}' \
  --settings '{}'

Implantação do portal do Azure

Para configurar a extensão DSC no portal do Azure, siga estas etapas:

  1. Ir para uma VM.

  2. Em Configurações, selecione Extensões e Aplicações.

  3. Em Extensões, selecione + Adicionar.

  4. Selecione Desired State Configuration do PowerShell e, em seguida, selecione Avançar.

  5. Configure os parâmetros a seguir para a extensão DSC.

    Observação

    Se você estiver trabalhando com um script de configuração padrão, tenha em mente que a maioria dos parâmetros a seguir deve ser definida diretamente no portal do Azure e não por meio de script.

    • Módulos de Configuração ou Script: (obrigatório) forneça os módulos de configuração ou o arquivo de script para sua VM.

      Módulos de configuração e scripts exigem um arquivo. ps1 que tem um script de configuração ou um arquivo. zip com um script de configuração. ps1 na raiz. Se você usar um arquivo. zip, todos os recursos dependentes devem ser incluídos em pastas de módulo no. zip. Você pode criar o arquivo. zip usando o cmdlet Publish-AzureVMDscConfiguration - -OutputArchivePath que está incluído no SDK do PowerShell do Azure. O arquivo .zip será carregado em seu Armazenamento de Blobs do usuário protegido por um token SAS.

    • Nome da Configuração qualificada pelo módulo: (obrigatório) especifique essa configuração para incluir várias funções de configuração em um único arquivo de script .ps1. Para esta configuração, insira o nome do arquivo de script .ps1 configuração seguido por uma barra diagonal \ e o nome da função de configuração. Por exemplo, se o arquivo de script .ps1 tiver o nome configuration.ps1 e o nome da configuração for IisInstall, insira o valor configuration.ps1\IisInstall para a configuração.

    • Argumentos de configuração: se a função de configuração aceitar argumentos, insira-os aqui no formato argumentName1=value1,argumentName2=value2. Observe que esse formato difere do formato usado para especificar argumentos de configuração em cmdlets do PowerShell ou modelos do ARM.

      Observação

      Os argumentos de configuração podem ser definidos em um script de configuração padrão.

    • Arquivo de Dados de Configuração PSD1: se sua configuração exigir um arquivo de dados de configuração no formato .psd1, use este arquivo para selecionar o arquivo de dados e carregá-lo no Armazenamento de Blobs do usuário. O arquivo de dados de configuração é protegido por um token SAS no armazenamento de blob.

    • Versão WMF: especifica a versão do Windows Management Framework (WMF) que deve ser instalada em sua VM. Se você escolher mais recente, que é o valor padrão, o sistema instalará a versão mais recente do WMF. Outros valores possíveis incluem 4.0, 5.0 e 5.1. Esses valores possíveis estão sujeitos a atualizações.

    • Coleta de Dados: habilite essa configuração se desejar que a extensão DSC colete telemetria sobre sua VM. Para obter mais informações, consulte coleta de dados de extensão de DSC do Azure.

    • Versão: (obrigatório) especifica a versão da extensão DSC para instalar. Para informações sobre as versões, veja histórico de versão da extensão Azure DSC.

    • Versão Secundária de Atualização Automática: essa configuração é mapeada para a opção AutoUpdate nos cmdlets. Defina essa configuração para habilitar a extensão DSC a ser atualizada automaticamente para a versão mais recente durante a instalação. Sim instrui o manipulador de extensão DSC a usar a versão mais recente disponível. Não (padrão) força a instalação da versão especificada na conjunto Versão.

  6. Depois de configurar os parâmetros, selecione Examinar e Criar e, em seguida, selecione Criar.

Logs de extensão DSC

Você pode exibir logs para a extensão DSC do Azure na VM em C:\WindowsAzure\Logs\Plugins\Microsoft.Powershell.DSC\<version number>.

Próximas etapas