Habilitación de las extensiones de VM de Azure mediante Azure PowerShell
En este artículo se muestra cómo implementar, actualizar y desinstalar extensiones de VM de Azure, compatibles con servidores habilitados para Azure Arc, 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 máquina virtual en máquinas virtuales de Azure. Para las máquinas virtuales de Azure, consulte el siguiente 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.
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 módulo Az.ConnectedMachine
. Estas operaciones de administración se pueden realizar desde la estación de trabajo y 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
.
Una vez que haya finalizado la instalación, se devuelve el mensaje siguiente:
The installed extension 'Az.ConnectedMachine' is experimental and not covered by customer support. Please use with discretion.
Habilitación de una extensión
Para habilitar una extensión de máquina virtual en el servidor habilitado para Azure Arc habilitado, 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 VM de Log Analytics en un servidor Linux habilitado para Azure Arc:
$Setting = @{ "workspaceId" = "workspaceId" }
$protectedSetting = @{ "workspaceKey" = "workspaceKey" }
New-AzConnectedMachineExtension -Name OMSLinuxAgent -ResourceGroupName "myResourceGroup" -MachineName "myMachineName" -Location "regionName" -Publisher "Microsoft.EnterpriseCloud.Monitoring" -Settings $Setting -ProtectedSetting $protectedSetting -ExtensionType "OmsAgentForLinux"
Para habilitar la extensión de máquina virtual de Log Analytics en un servidor Windows habilitado para Azure Arc, cambie el valor del parámetro -ExtensionType
a "MicrosoftMonitoringAgent"
en el ejemplo anterior.
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 settings.json se producirá un error 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, querrá 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 VM en el servidor habilitado para Azure Arc, use Get-AzConnectedMachineExtension con los parámetros -MachineName
y -ResourceGroupName
.
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.
Actualizar extensión
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 VM, 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 versión más reciente disponible para una extensión, visite la página Extensiones del servidor habilitado para Arc seleccionado en Azure Portal o ejecute Get-AzVMExtensionImage. Puede especificar varias extensiones en una sola solicitud de actualización proporcionando una lista separada por comas de extensiones, definidas por su publicador y tipo (separados por un punto) y la versión de destino para cada extensión.
Para actualizar la extensión del agente de Log Analytics para Windows que tenga disponible una versión más reciente, ejecute el siguiente comando:
Update-AzConnectedExtension -MachineName "myMachineName" -ResourceGroupName "myResourceGroup" -ExtensionTarget '{\"Microsoft.EnterpriseCloud.Monitoring.MicrosoftMonitoringAgent\":{\"targetVersion\":\"1.0.18053.0\"}}'
Puede revisar la versión de las extensiones de VM 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 VM instalada en el servidor habilitado para Azure Arc, use Remove-AzConnectedMachineExtension con los parámetros -Name
, -MachineName
y -ResourceGroupName
.
Por ejemplo, para quitar la extensión de VM de Log Analytics para Linux, ejecute el siguiente comando:
Remove-AzConnectedMachineExtension -MachineName myMachineName -ResourceGroupName myResourceGroup -Name OmsAgentforLinux
Pasos siguientes
Puede implementar, administrar y quitar extensiones de VM con la CLI de Azure, desde Azure Portal o con plantillas de Azure Resource Manager.
Puede encontrar información de solución de problemas en la guía de solución de problemas de las extensiones de máquina virtual.