你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure PowerShell 启用 Azure VM 扩展
本文介绍如何部署、更新和卸载已启用 Azure Arc 的服务器支持的 Azure 虚拟机 (VM) 扩展。 它演示如何使用 Azure PowerShell 在 Linux 或 Windows 混合计算机上执行这些任务。
注意
已启用 Azure Arc 的服务器不支持管理 VM 扩展,也不支持将 VM 扩展部署到 Azure 虚拟机。 对于 Azure VM,请参阅 VM 扩展概述一文。
先决条件
配备 Azure PowerShell 的计算机。 有关说明,请参阅安装和配置 Azure PowerShell。
Az.ConnectedMachine
模块。 使用 Azure PowerShell 在已启用 Azure Arc 的服务器管理的混合服务器上管理 VM 扩展之前,需要安装此模块。可以从工作站执行这些管理操作。 无需在已启用 Azure Arc 的服务器上运行它们。
在已启用 Azure Arc 的服务器上运行以下命令:
Install-Module -Name Az.ConnectedMachine
添加扩展
若要在已启用 Azure Arc 的服务器上启用 VM 扩展,请将 New-AzConnectedMachineExtension
与 -Name
、-ResourceGroupName
、-MachineName
、-Location
、-Publisher
、ExtensionType
和 -Settings
参数配合使用。
以下示例将在已启用 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
以下示例在已启用 Azure Arc 的 Windows 服务器上启用 Microsoft Antimalware 扩展:
$Setting = @{ "AntimalwareEnabled" = $true }
New-AzConnectedMachineExtension -Name "IaaSAntimalware" -ResourceGroupName "myResourceGroup" -MachineName "myMachineName" -Location "regionName" -Publisher "Microsoft.Azure.Security" -Settings $Setting -ExtensionType "IaaSAntimalware"
Key Vault VM 扩展
警告
在 settings.json 文件中将 \
添加到 "
将导致 akvvm_service
失败并出现以下错误:[CertificateManagementConfiguration] Failed to parse the configuration settings with:not an object.
虽然 PowerShell 用户通常使用 \"
序列来转义其他代码块中的引号,但你应该避免在 settings.json 文件中使用该格式设置。
以下示例将在已启用 Azure Arc 的服务器上启用 Key Vault VM 扩展:
# 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
Datadog VM 扩展
以下示例将在已启用 Azure Arc 的服务器上启用 Datadog VM 扩展:
$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
列出已安装的扩展
若要获取已启用 Azure Arc 的服务器上的 VM 扩展列表,请将 Get-AzConnectedMachineExtension
与 -MachineName
和 -ResourceGroupName
参数配合使用。
下面是一个示例:
Get-AzConnectedMachineExtension -ResourceGroupName myResourceGroup -MachineName myMachineName
Name Location PropertiesType ProvisioningState
---- -------- -------------- -----------------
custom westus2 CustomScriptExtension Succeeded
更新扩展配置
要重新配置已安装的扩展,你可以将 Update-AzConnectedMachineExtension
cmdlet 与 -Name
、-MachineName
、-ResourceGroupName
和 -Settings
参数配合使用。
若要了解提供所需扩展更改的方法,请参阅 cmdlet 的参考文章。
升级扩展
受支持 VM 扩展的新版本发布后,可将该扩展升级到这一最新版本。 若要升级 VM 扩展,请将 Update-AzConnectedExtension
与 -MachineName
、-ResourceGroupName
和 -ExtensionTarget
参数配合使用。
对于 -ExtensionTarget
参数,需要指定扩展以及可用的最新版本。 若要确定某个扩展的最新可用版本,请在 Azure 门户中访问选定的启用了 Azure Arc 的服务器的“扩展”页,或者运行 Get-AzVMExtensionImage
。 可以通过提供以下两项,在单个升级请求中指定多个扩展:
- 以逗号分隔的扩展列表,通过其发布者和类型来定义(用句点分隔)
- 每个扩展的目标版本
可以通过运行命令 Get-AzConnectedMachineExtension
,随时查看已安装的 VM 扩展的版本。 TypeHandlerVersion
属性值表示扩展的版本。
删除扩展
若要删除已启用 Azure Arc 的服务器上安装的 VM 扩展,请将 Remove-AzConnectedMachineExtension
与 -Name
、-MachineName
和 -ResourceGroupName
参数配合使用。
相关内容
- 你可以使用 Azure CLI、Azure 门户或 Azure 资源管理器模板来部署、管理和移除 VM 扩展。
- 可以在 VM 扩展故障排除指南中找到故障排除信息。