Partilhar via


Extensão DSC do PowerShell

Observação

A extensão do DSC será aposentada em 31 de março de 2028. Mova para a Configuração de Máquina do Azure até essa data. Para obter mais informações, consulte o anúncio da postagem no blog . O serviço de Configuração de Máquina do Azure combina determinados recursos da Extensão DSC, Configuração do Estado de Automação do Azure e recursos comumente solicitados dos comentários dos clientes. A Configuração de Máquina do Azure também inclui suporte a máquinas híbridas por meio de servidores habilitados para Arc.

Visão geral

A Extensão DSC do PowerShell para Windows carrega e aplica uma Configuração de DSC do PowerShell em uma máquina virtual do Azure. A Extensão DSC chama o DSC do PowerShell para executar a configuração DSC recebida na máquina virtual. 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.

Observação

Experimenta o VM assist para diagnósticos mais rápidos. Recomendamos que execute o VM assist para Windows ou o VM assist para Linux. Essas ferramentas de diagnóstico baseadas em script ajudam você a identificar problemas comuns que afetam o Agente Convidado da VM do Azure e a integridade geral da VM.

Se estiver a experienciar problemas de desempenho com máquinas virtuais, antes de contactar o suporte, execute estas ferramentas.

Pré-requisitos

Sistema operativo

A extensão DSC suporta os seguintes sistemas operativos

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

conectividade 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 armazenado 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 date
editor Microsoft.Powershell.DSC cadeia (de caracteres)
tipo DSC cadeia (de caracteres)
typeHandlerVersion 2.77 int

Valores da propriedade Settings

Nome Tipo de dados Description
configurações.wmfVersion cadeia (de caracteres) Especifica a versão do Windows Management Framework que deve ser instalada em sua VM. Definir esta propriedade como 'mais recente' instala 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 cadeia (de caracteres) 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, defina 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 cadeia (de caracteres) 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 cadeia (de caracteres) 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 Collection 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 cadeia (de caracteres) 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, defina a propriedade protectedSettings.configurationDataUrlSasToken como o valor do seu token SAS.
settings.privacy.dataEnabled cadeia (de caracteres) 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 habilita 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 refere a se o nó foi registrado com êxito na Configuração do Estado de Automação do Azure e se a configuração do nó não será executada durante o registro.
settings.advancedOptions.downloadMapeamentos Collection Define locais alternativos para baixar dependências, como WMF e .NET

Valores da propriedade Configurações Protegidas

Nome Tipo de dados Description
protectedSettings.configurationArguments cadeia (de caracteres) Define todos os parâmetros que você gostaria de passar para sua configuração DSC.
protectedSettings.configurationUrlSasToken cadeia (de caracteres) Especifica o token SAS para acessar a URL definida por configuration.url.
protectedSettings.configurationDataUrlSasToken cadeia (de caracteres) Especifica o token SAS para acessar a URL definida por configurationData.url.

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

Troubleshoot

Os dados sobre o estado das implantações de extensão podem ser recuperados do portal do Azure e usando a 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 arquivo de status da extensão contém o substatus e os códigos de sucesso/erro de status, juntamente com o erro detalhado e a descrição de cada execução de extensão.

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

Os logs de saída de extensão são registrados no seguinte diretório:

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

Códigos de erro e seus significados

Código de Erro Meaning 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

Support

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.