Partilhar via


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

Este artigo explica como implantar, atualizar e desinstalar extensões de máquina virtual (VM) do Azure suportadas por servidores habilitados para Azure Arc. Ele mostra como executar essas tarefas em uma máquina híbrida Linux ou Windows usando o Azure PowerShell.

Nota

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

Pré-requisitos

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

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

    Pode executar estas operações de gestão a partir da sua estação de trabalho. Você não precisa executá-los no servidor habilitado para Azure Arc.

    Execute o seguinte comando em seu servidor habilitado para Azure Arc:

Install-Module -Name Az.ConnectedMachine

Ativar uma extensão

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

O exemplo a seguir habilita a Extensão de Script Personalizada 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 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 \ ao " 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 das aspas em outros blocos de código, você deve evitar essa formatação no arquivo settings.json.

O exemplo a seguir habilita a extensão de VM do Cofre da Chave 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 Datadog VM

O exemplo a seguir habilita a extensão Datadog VM 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 em seu servidor habilitado para Azure Arc, use Get-AzConnectedMachineExtension com os -MachineName parâmetros e -ResourceGroupName .

Eis 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 Update-AzConnectedMachineExtension cmdlet com os -Nameparâmetros , -MachineName, -ResourceGroupNamee -Settings .

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

Extensões de atualização

Quando uma nova versão de uma extensão de VM suportada é lançada, você pode atualizá-la para essa versão mais recente. Para atualizar uma extensão de VM, use Update-AzConnectedExtension com os -MachineNameparâmetros , -ResourceGroupNamee -ExtensionTarget .

Para o -ExtensionTarget parâmetro, você precisa especificar a extensão e a versão mais recente disponível. Para determinar a versão mais recente disponível para uma extensão, vá para 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 ambas:

  • Uma lista de extensões separadas por vírgula, definida pelo editor e pelo tipo (separados por um 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 TypeHandlerVersion valor da propriedade representa a versão da extensão.

Remover extensões

Para remover uma extensão de VM instalada em seu servidor habilitado para Azure Arc, use Remove-AzConnectedMachineExtension com os -Nameparâmetros , -MachineNamee -ResourceGroupName .