Extensão DSC do PowerShell

Nota

Antes de habilitar a extensão DSC, gostaríamos que você soubesse que uma versão mais recente do DSC agora está disponível ao público, gerenciada por um recurso da configuração de máquina nomeada do Azure Automange. O recurso de configuração da máquina combina recursos do manipulador de extensão DSC (Configuração de Estado Desejado), Configuração do Estado de Automação do Azure e os recursos mais comumente solicitados 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.

Descrição geral

A extensão DSC do PowerShell para Windows é publicada e suportada pela Microsoft. A extensão carrega e aplica uma Configuração DSC do PowerShell em uma VM do Azure. A Extensão DSC chama o DSC do PowerShell para executar a configuração DSC recebida na VM. Este documento detalha as plataformas, configurações e opções de implantação suportadas para a extensão de máquina virtual DSC para Windows.

Pré-requisitos

Sistema operativo

A extensão DSC suporta os seguintes sistemas operacionais

Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012R2, Windows Server 2012, Windows Server 2008 R2 SP1, Windows Client 7/8.1/10

Ligação à Internet

A extensão DSC para Windows requer que a máquina virtual de destino seja capaz de se comunicar com o Azure e o local do pacote de configuração (arquivo .zip) se ele estiver armazenado em um local fora do Azure.

Esquema de extensão

O JSON a seguir mostra o esquema para a parte de configurações da Extensão DSC em um modelo do Azure Resource Manager.

{
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "name": "Microsoft.Powershell.DSC",
  "apiVersion": "2018-10-01",
  "location": "<location>",
  "properties": {
    "publisher": "Microsoft.Powershell",
    "type": "DSC",
    "typeHandlerVersion": "2.77",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "wmfVersion": "latest",
        "configuration": {
            "url": "http://validURLToConfigLocation",
            "script": "ConfigurationScript.ps1",
            "function": "ConfigurationFunction"
        },
        "configurationArguments": {
            "argument1": "Value1",
            "argument2": "Value2"
        },
        "configurationData": {
            "url": "https://foo.psd1"
        },
        "privacy": {
            "dataCollection": "enable"
        },
        "advancedOptions": {
            "forcePullAndApply": false,
            "downloadMappings": {
             "specificDependencyKey": "https://myCustomDependencyLocation"
            }
        }
    },
    "protectedSettings": {
        "configurationArguments": {
            "parameterOfTypePSCredential1": {
                "userName": "UsernameValue1",
                "password": "PasswordValue1"
            },
            "parameterOfTypePSCredential2": {
                "userName": "UsernameValue2",
                "password": "PasswordValue2"
            }
        },
        "configurationUrlSasToken": "?g!bber1sht0k3n",
        "configurationDataUrlSasToken": "?dataAcC355T0k3N"
    }
  }
}

Valores de propriedade

Nome Valor / Exemplo Tipo de Dados
apiVersion 2018-10-01 data
editora Microsoft.Powershell.DSC string
tipo DSC string
typeHandlerVersion 2.77 número inteiro

Valores da propriedade Settings

Name Tipo de Dados Description
configurações.wmfVersion string Especifica a versão do Windows Management Framework que deve ser instalada em sua VM. Definir esta propriedade como 'mais recente' instalará a versão mais atualizada do WMF. Os únicos valores atuais possíveis para esta propriedade são '4.0', '5.0' e 'mais recente'. Estes valores possíveis estão sujeitos a atualizações. O valor padrão é 'mais recente'.
configurações.configuração.url string Especifica o local da URL a partir do qual o arquivo zip de configuração DSC deve ser baixado. Se a URL fornecida exigir um token SAS para acesso, você precisará definir a propriedade protectedSettings.configurationUrlSasToken como o valor do seu token SAS. Esta propriedade é necessária se settings.configuration.script e/ou settings.configuration.function estiverem definidos.
configurações.configuration.script string Especifica o nome do arquivo do script que contém a definição da configuração do DSC. Esse script deve estar na pasta raiz do arquivo zip baixado da URL especificada pela propriedade configuration.url. Esta propriedade é necessária se settings.configuration.url e/ou settings.configuration.script estiverem definidos.
configurações.configuration.function string Especifica o nome da configuração do DSC. A configuração nomeada deve estar contida no script definido por configuration.script. Esta propriedade é necessária se settings.configuration.url e/ou settings.configuration.function estiverem definidos.
settings.configurationArgumentos Coleção Define todos os parâmetros que você gostaria de passar para sua configuração DSC. Esta propriedade não será encriptada.
configurações.configurationData.url string Especifica a URL a partir da qual o arquivo de dados de configuração (.pds1) deve ser usado como entrada para a configuração do DSC. Se a URL fornecida exigir um token SAS para acesso, você precisará definir a propriedade protectedSettings.configurationDataUrlSasToken como o valor do seu token SAS.
settings.privacy.dataEnabled string Habilita ou desabilita a coleta de telemetria. Os únicos valores possíveis para esta propriedade são 'Enable', 'Disable', ", ou $null. Deixar essa propriedade em branco ou nula habilitará a telemetria
configurações.advancedOptions.forcePullAndApply Bool Essa configuração foi projetada para aprimorar a experiência de trabalhar com a extensão para registrar nós com o Azure Automation DSC. Se o valor for $true, a extensão aguardará a primeira execução da configuração retirada do serviço antes de retornar sucesso/falha. Se o valor for definido como $false, o status retornado pela extensão se referirá apenas se o nó foi registrado com êxito na Configuração do Estado de Automação do Azure e a configuração do nó não será executada durante o registro.
settings.advancedOptions.downloadMapeamentos Coleção Define locais alternativos para baixar dependências, como WMF e .NET

Valores da propriedade Configurações Protegidas

Name Tipo de Dados Description
protectedSettings.configurationArguments string Define todos os parâmetros que você gostaria de passar para sua configuração DSC. Esta propriedade será encriptada.
protectedSettings.configurationUrlSasToken string Especifica o token SAS para acessar a URL definida por configuration.url. Esta propriedade será encriptada.
protectedSettings.configurationDataUrlSasToken string Especifica o token SAS para acessar a URL definida por configurationData.url. Esta propriedade será encriptada.

Implementação de modelos

As extensões de VM do Azure podem ser implantadas com modelos do Azure Resource Manager. Os modelos são ideais ao implantar uma ou mais máquinas virtuais que exigem configuração pós-implantação. Um modelo de exemplo do Resource Manager que inclui a extensão DSC para Windows pode ser encontrado na Galeria de Início Rápido do Azure.

Solução de problemas e suporte

Resolver problemas

Pode obter dados sobre o estado das implementações de extensões no portal do Azure e na CLI do Azure. Para ver o estado de implantação das extensões de uma determinada VM, execute o seguinte comando usando a CLI do Azure.

az vm extension list --resource-group myResourceGroup --vm-name myVM -o table

O pacote de extensão é baixado e implantado neste local na VM do Azure

C:\Packages\Plugins\{Extension_Name}\{Extension_Version}

O ficheiro de estado da extensão contém o subestado e estado de êxito/códigos de erro juntamente com o erro detalhado e uma descrição para cada extensão executada.

C:\Packages\Plugins\{Extension_Name}\{Extension_Version}\Status\{0}.Status  -> {0} being the sequence number

Os registos de saída da extensão são registados no seguinte diretório:

C:\WindowsAzure\Logs\Plugins\{Extension_Name}\{Extension_Version}

Códigos de erro e seus significados

Código de Erro Significado Ação possível
1000 Erro genérico A mensagem para esse erro é fornecida pela exceção específica nos logs de extensão
52 Erro de instalação da extensão A mensagem para este erro é fornecida pela exceção específica
1002 Erro de instalação do Wmf Erro ao instalar o WMF.
1004 Pacote Zip inválido Zip inválido; Erro ao descompactar o zip
1100 Erro de argumento Indica um problema na entrada fornecida pelo usuário. A mensagem para o erro é fornecida pela exceção específica

Suporte

Se precisar de mais ajuda em qualquer ponto deste artigo, entre em contato com os especialistas do Azure nos fóruns MSDN Azure e Stack Overflow. Como alternativa, você pode registrar um incidente de suporte do Azure. Vá para o site de suporte do Azure e selecione Obter suporte. Para obter informações sobre como usar o Suporte do Azure, leia as Perguntas frequentes de suporte do Microsoft Azure.