Compartilhar via


Habilitar extensões de VM do Azure usando o Azure PowerShell

Esse artigo explica como implantar, atualizar e desinstalar extensões de máquina virtual (VM) do Azure com suporte para servidores habilitados para Azure Arc. Ele mostra como executar essas tarefas em um computador híbrido Linux ou Windows usando o Azure PowerShell.

Observação

Os servidores habilitados para Azure Arc não dão suporte à implantação e gerenciamento de extensões de VM em máquinas virtuais do Azure. Para VMs do Azure, confira o artigo Visão geral da extensão de VM.

Pré-requisitos

  • Um computador com o PowerShell do Azure. Para obter instruções, consulte Instalar e configurar o PowerShell do Azure.

  • O módulo Az.ConnectedMachine. Antes de usar o Azure PowerShell para gerenciar extensões de VM no seu servidor híbrido gerenciado por servidores habilitados para Azure Arc, você precisa instalar este módulo.

    Você pode executar essas operações de gerenciamento na sua estação de trabalho. Não é necessário executá-las no servidor habilitado para Azure Arc.

    Execute o seguinte comando no servidor habilitado para Azure Arc:

Install-Module -Name Az.ConnectedMachine

Habilitar uma extensão

Para habilitar uma extensão de VM no seu servidor habilitado para Azure Arc, use New-AzConnectedMachineExtension com os parâmetros -Name, -ResourceGroupName, -MachineName, -Location, -Publisher, -ExtensionType e -Settings.

O exemplo a seguir habilita a extensão de script personalizado em um servidor habilitado para Azure Arc:

$Setting = @{ "commandToExecute" = "powershell.exe -c Get-Process" }
New-AzConnectedMachineExtension -Name "custom" -ResourceGroupName "myResourceGroup" -MachineName "myMachineName" -Location "regionName" -Publisher "Microsoft.Compute"  -Settings $Setting -ExtensionType CustomScriptExtension

O exemplo a seguir habilita a extensão de Microsoft Antimalware em um servidor Windows habilitado para Azure Arc:

$Setting = @{ "AntimalwareEnabled" = $true }
New-AzConnectedMachineExtension -Name "IaaSAntimalware" -ResourceGroupName "myResourceGroup" -MachineName "myMachineName" -Location "regionName" -Publisher "Microsoft.Azure.Security" -Settings $Setting -ExtensionType "IaaSAntimalware"

Extensão de VM do Key Vault

Aviso

Adicionar \ a " no arquivo settings.json fará com que akvvm_service falhe com o seguinte erro: [CertificateManagementConfiguration] Failed to parse the configuration settings with:not an object.

Embora os usuários do PowerShell geralmente usem a sequência \" para escapar de aspas em outros blocos de código, evite essa formatação no arquivo settings.json.

O exemplo a seguir habilita a extensão de VM do Key Vault em um servidor habilitado para Azure Arc:

# Build settings
    $settings = @{
      secretsManagementSettings = @{
       observedCertificates = @(
        "observedCert1"
       )
      certificateStoreLocation = "myMachineName" # For Linux use "/var/lib/waagent/Microsoft.Azure.KeyVault.Store/"
      certificateStore = "myCertificateStoreName"
      pollingIntervalInS = "pollingInterval"
      }
    authenticationSettings = @{
     msiEndpoint = "http://localhost:40342/metadata/identity"
     }
    }

    $resourceGroup = "resourceGroupName"
    $machineName = "myMachineName"
    $location = "regionName"

    # Start the deployment
    New-AzConnectedMachineExtension -ResourceGroupName $resourceGroup -Location $location -MachineName $machineName -Name "KeyVaultForWindows or KeyVaultforLinux" -Publisher "Microsoft.Azure.KeyVault" -ExtensionType "KeyVaultforWindows or KeyVaultforLinux" -Setting $settings

Extensão de VM do Datadog

O seguinte exemplo habilita a extensão de VM do Datadog em um servidor habilitado para Azure Arc:

$resourceGroup = "resourceGroupName"
$machineName = "machineName"
$location = "machineRegion"
$osType = "Windows" # change to Linux if appropriate
$settings = @{
    # change to your preferred Datadog site
    site = "us3.datadoghq.com"
}
$protectedSettings = @{
    # change to your Datadog API key
    api_key = "APIKEY"
}

New-AzConnectedMachineExtension -ResourceGroupName $resourceGroup -Location $location -MachineName $machineName -Name "Datadog$($osType)Agent" -Publisher "Datadog.Agent" -ExtensionType "Datadog$($osType)Agent" -Setting $settings -ProtectedSetting $protectedSettings

Listar extensões instaladas

Para obter uma lista das extensões de VM no servidor habilitado para Azure Arc, use Get-AzConnectedMachineExtension com os parâmetros -MachineName e -ResourceGroupName.

Veja um exemplo:

Get-AzConnectedMachineExtension -ResourceGroupName myResourceGroup -MachineName myMachineName

Name    Location  PropertiesType        ProvisioningState
----    --------  --------------        -----------------
custom  westus2   CustomScriptExtension Succeeded

Atualizar uma configuração de extensão

Para reconfigurar uma extensão instalada, você pode usar o cmdlet Update-AzConnectedMachineExtension com os parâmetros -Name, -MachineName, -ResourceGroupName e -Settings.

Para entender os métodos de fornecimento das alterações desejadas na extensão, consulte o artigo de referência do cmdlet.

Atualizar extensões

Quando uma nova versão de uma extensão de VM com suporte for lançada, você poderá atualizá-la para a versão mais recente. Para atualizar uma extensão de VM, use Update-AzConnectedExtension com os parâmetros -MachineName, -ResourceGroupName e -ExtensionTarget.

Para o parâmetro -ExtensionTarget, você precisa especificar a extensão e a versão mais recente disponível. Para determinar a última versão disponível para uma extensão, acesse a página Extensões do servidor habilitado para Azure Arc selecionado no portal do Azure ou execute Get-AzVMExtensionImage. Você pode especificar várias extensões em uma única solicitação de atualização fornecendo ambos:

  • Uma lista de extensões separadas por vírgula, definidas por seu fornecedor e tipo (separadas por ponto)
  • A versão de destino para cada extensão

Você pode revisar a versão das extensões de VM instaladas a qualquer momento executando o comando Get-AzConnectedMachineExtension. O valor da propriedade TypeHandlerVersion representa a versão da extensão.

Remover extensões

Para remover uma extensão de VM instalada no servidor habilitado para Azure Arc, use Remove-AzConnectedMachineExtension com os parâmetros -Name, -MachineName e -ResourceGroupName.