Introdução ao processador da extensão Desired State Configuration do Azure

A Extensão de 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. As extensões de VM do Azure são componentes de software que estendem a funcionalidade da VM e simplificam várias operações de gerenciamento de VM.

O principal uso para a extensão de Configuração de Estado Desejado (DSC) do Azure para Windows PowerShell é inicializar uma VM para o serviço Azure Automation State Configuration (DSC). Este 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 funciona em assinaturas do Azure.

Você pode executar a extensão DSC independentemente do serviço DSC de automação, mas esse método envia apenas uma configuração para a VM. Nenhum relatório contínuo está disponível, exceto localmente na VM. Antes de habilitar a extensão DSC, revise as versões disponíveis do DSC e escolha a versão que suporta 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 DSC disponíveis

Várias versões da Configuração de Estado Desejado estão disponíveis para implementação. Antes de habilitar a extensão DSC, escolha a versão DSC que melhor suporta sua configuração e objetivos de negócios.

Versão Disponibilidade Description
2.0 Disponibilidade geral A Configuração de Estado Desejado 2.0 tem suporte para uso com o recurso Configuração de Máquina de Gerenciamento Automático do Azure. O recurso de configuração da máquina combina recursos do manipulador de extensão DSC, Configuração do Estado de Automação do Azure e os recursos mais comumente solicitados a partir dos comentários dos clientes. A configuração da máquina também inclui suporte a máquinas híbridas através de servidores habilitados para Arc.
1.1 Disponibilidade geral Se sua implementação não usar o recurso de configuração de máquina do Azure Automanage, você deverá escolher Configuração de Estado Desejado 1.1. Para obter mais informações, consulte PSDesiredStateConfiguration v1.1.
3.0 Pré-visualização pública A Configuração de Estado Desejado 3.0 está disponível em versão beta pública. Esta versão deve ser usada somente com a configuração da máquina do Azure ou para ambientes que não sejam de produção para testar a migração da Configuração de Estado Desejado 1.1.

Pré-requisitos

  • Máquina local: para interagir com a extensão DSC do Azure, você deve usar o portal do Azure ou o SDK do Azure PowerShell na máquina local.

  • Agente convidado: a VM do Azure preparada pela configuração DSC deve usar um sistema operacional que ofereça suporte ao Windows Management Framework (WMF) 4.0 ou posterior. Para obter a lista completa de versões do sistema operacional com suporte, consulte o histórico de versões da extensão DSC do Azure.

Termos e conceitos

Este artigo pressupõe familiaridade com os seguintes conceitos:

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

  • O nó identifica um destino para uma configuração DSC . Neste artigo, o nó sempre se refere a uma VM do Azure.

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

Arquitetura

A extensão DSC do Azure usa a estrutura de Extensão de VM do Azure para entregar, promulgar e relatar configurações de DSC em execução em VMs do Azure. A extensão 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 será incorporado com a extensão. O script de configuração padrão é usado apenas para definir metadados no Gerenciador de Configuração Local.

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

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

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

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

O processo de instalação do WMF requer uma reinicialização. Depois de reiniciar, a extensão baixa o arquivo de .zip especificado na modulesUrl propriedade, se fornecido. Se esse local estiver no Armazenamento de Blobs do Azure, você poderá especificar um token SAS na sasToken propriedade para acessar o arquivo. Depois que o .zip baixa e descompacta, a função de configuração definida em configurationFunction é executada para gerar um arquivo MOF (Managed Object Format) (.mof). Em seguida, a extensão executa o comando usando o Start-DscConfiguration -Force 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 DSC do Azure inclui um script de configuração padrão que se destina a ser usado quando você integra uma VM ao serviço de Configuração de Estado de Automação do Azure. Os parâmetros de script são alinhados com as propriedades configuráveis do Local Configuration Manager. Para parâmetros de script, consulte Script de configuração padrão em Extensão de configuração de estado desejado com modelos do Azure Resource Manager (ARM). Para obter o script completo, consulte o Modelo de Início Rápido do Azure no GitHub.

Registro de Configuração de Estado de Automação do Azure

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

  • RegistrationUrl: O endereço https da conta de Automação do Azure.
  • RegistrationKey: Um segredo compartilhado usado para registrar nós no serviço.
  • NodeConfigurationName: O nome da configuração do 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 no 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

Configuração do nome do nó

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

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

Aviso

Verifique se a configuração do nó existe na Configuração do Estado de Automação do Azure. Se esse valor não existir, a implantação da extensão retornará uma falha.

Implantação de modelo ARM

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

Implantação de cmdlet do PowerShell

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

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

  • O cmdlet Publish-AzVMDscConfiguration recebe um arquivo de configuração, verifica-o em busca de recursos DSC dependentes e cria um arquivo .zip. O arquivo .zip contém a configuração e os recursos DSC necessários para executar a configuração. O cmdlet também pode criar o pacote localmente usando o -OutputArchivePath parâmetro. Caso contrário, o cmdlet publicará o arquivo .zip no Armazenamento de Blobs e, em seguida, o protegerá com um token SAS.

    O script de configuração do PowerShell (.ps1) criado pelo cmdlet está no arquivo .zip na raiz da pasta de arquivamento. A pasta do módulo é colocada na pasta de arquivo em recursos.

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

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

  • O cmdlet Get-AzVMDscExtensionStatus recupera o status da configuração DSC que é executada pelo manipulador de extensão 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ão de uma VM específica. Lembre-se de que esse cmdlet não remove a configuração, não desinstala o WMF nem altera as configurações aplicadas na VM. O cmdlet remove apenas o manipulador de extensão.

Considerações importantes

Há várias considerações a ter em mente 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, , , , VersionVMNameArchiveStorageAccountNamee .Location

  • ArchiveResourceGroupName é um parâmetro opcional. Especifique esse parâmetro quando sua conta de armazenamento pertencer a um grupo de recursos diferente daquele em que a VM foi criada.

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

Configuração com cmdlets do PowerShell

A extensão DSC do Azure pode usar documentos de configuração DSC para configurar diretamente as VMs do Azure durante a implantação. Esta etapa não registra o nó para Automação. Lembre-se de que o nó não é gerenciado centralmente.

O código a seguir mostra um exemplo simples 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 comandos do PowerShell a seguir colocam o script iisInstall.ps1 na VM especificada. Os comandos também executam a configuração e, em seguida, relatam 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'

Implementaçã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 estes passos:

  1. Vá para uma VM.

  2. Em Configurações, selecione Extensões + Aplicativos.

  3. Em Extensões, selecione + Adicionar.

  4. Selecione Configuração de Estado Desejado do PowerShell e, em seguida, selecione Avançar.

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

    • 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.

      Os módulos e scripts de configuração requerem um arquivo .ps1 que tenha 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 deverão ser incluídos nas pastas do módulo no arquivo .zip. Você pode criar o arquivo .zip usando o cmdlet Publish-AzureVMDscConfiguration -OutputArchivePath incluído no SDK do Azure PowerShell. O arquivo .zip é carregado para o armazenamento de Blob do usuário e protegido por um token SAS.

    • Nome de configuração qualificado 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 essa configuração, digite o nome do arquivo de script .ps1 de configuração seguido de uma barra \ e, em seguida, 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 usa argumentos, insira os valores usando o 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 ARM.

      Nota

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

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

    • Versão WMF: especifique a versão do Windows Management Framework a 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. Os valores possíveis estão sujeitos a atualizações.

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

    • Versão: (Obrigatório) Especifique a versão da extensão DSC a ser instalada. Para obter informações sobre versões, consulte Histórico de versões da extensão DSC do Azure.

    • Versão secundária de atualização automática: essa configuração é mapeada para o AutoUpdate switch nos cmdlets. Defina essa configuração para permitir que a extensão DSC seja 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. Nenhum (padrão) força a instalação da versão especificada na configuração Versão .

  6. Depois de configurar os parâmetros, selecione Rever + 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óximos passos