Compartir a través de


Habilitación de las extensiones de máquina virtual de Azure mediante Azure PowerShell

En este artículo se muestra cómo implementar, actualizar y desinstalar extensiones de máquina virtual (VM) de Azure, compatibles con servidores habilitados para Azure Arc. Muestra cómo realizar estas tareas en una máquina híbrida Linux o Windows mediante Azure PowerShell.

Nota:

Los servidores habilitados para Azure Arc no admiten la implementación y administración de extensiones de VM en máquinas virtuales de Azure. Para las máquinas virtuales de Azure, consulte el artículo de información general sobre la extensión de máquina virtual.

Requisitos previos

  • Un equipo con Azure PowerShell. Para obtener más información, consulte Instalación y configuración de Azure PowerShell.

  • El módulo Az.ConnectedMachine. Antes de usar Azure PowerShell para administrar las extensiones de máquina virtual en el servidor híbrido administrado por los servidores habilitados para Azure Arc, tendrá que instalar el este módulo.

    Puede realizar estas operaciones de administración desde su estación de trabajo. No es necesario ejecutarlas en el servidor habilitado para Azure Arc.

    Ejecute el comando siguiente en el servidor habilitado para Azure Arc:

Install-Module -Name Az.ConnectedMachine

Habilitación de extensiones

Para habilitar una extensión de máquina virtual en el servidor habilitado para Azure Arc, use New-AzConnectedMachineExtension con los parámetros -Name, -ResourceGroupName, -MachineName, -Location, -Publisher, ExtensionType y -Settings.

En el ejemplo siguiente se habilita la extensión de script personalizado en un 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

En el ejemplo anterior se habilita la extensión de Microsoft Antimalware en un 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"

Extensión de máquina virtual de Key Vault

Advertencia

Al agregar \ a " en el archivo settings.json se producirá un fallo de akvvm_service con el siguiente error: [CertificateManagementConfiguration] Failed to parse the configuration settings with:not an object.

Aunque los usuarios de PowerShell suelen usar la secuencia \" para escapar las comillas en otros bloques de código, deberá evitar ese formato en el archivo settings.json.

En el ejemplo siguiente se habilita la extensión de máquina virtual de Key Vault en un 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

Extensión de máquina virtual de Datadog

En el ejemplo siguiente se habilita la extensión de máquina virtual de Datadog en un 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

Enumeración de extensiones instaladas

Para obtener una lista de las extensiones de máquina virtual en el servidor habilitado para Azure Arc, use Get-AzConnectedMachineExtension con los parámetros -MachineName y -ResourceGroupName.

Este es un ejemplo:

Get-AzConnectedMachineExtension -ResourceGroupName myResourceGroup -MachineName myMachineName

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

Actualización de la configuración de la extensión

Para volver a configurar una extensión instalada, puede usar el cmdlet Update-AzConnectedMachineExtension con los parámetros -Name, -MachineName, -ResourceGroupName y -Settings.

Consulte el artículo de referencia del cmdlet para comprender los distintos métodos para proporcionar los cambios que quiera para la extensión.

Actualización de extensiones

Cuando se publica una nueva versión de una extensión de VM compatible, puede actualizarla a esa versión más reciente. Para actualizar una extensión de máquina virtual, use Update-AzConnectedExtension con los parámetros -MachineName, -ResourceGroupName y -ExtensionTarget.

Para el parámetro -ExtensionTarget, debe especificar la extensión y la versión más reciente disponible. Para determinar la última versión disponible para una extensión, visite la página Extensiones del servidor habilitado para Azure Arc seleccionado en Azure Portal o ejecute Get-AzVMExtensionImage. Puede especificar varias extensiones en una única solicitud de actualización proporcionando:

  • Una lista separada por comas de extensiones, definida por su publicador y tipo (separadas por un punto)
  • La versión de destino de cada extensión

Puede revisar la versión de las extensiones de máquina virtual instaladas en cualquier momento ejecutando el comando Get-AzConnectedMachineExtension. El valor de propiedad TypeHandlerVersion representa la versión de la extensión.

Eliminación de extensiones

Para quitar una extensión de máquina virtual instalada en el servidor habilitado para Azure Arc, use Remove-AzConnectedMachineExtension con los parámetros -Name, -MachineName y -ResourceGroupName.