适用于: ✔️ NetApp CVO Linux VM
总结
本文讨论如何移除安装在从 NetApp Cloud Volumes ONTAP (CVO) 映像创建的 Microsoft Azure 虚拟机 (VM) 上的扩展。 本文还讨论了如何防止安装扩展。
先决条件
-
NetApp CVO 资源组具有“删除”锁定功能,可能会阻止脚本卸载 VM 扩展。 在“解决方法”部分中运行脚本后,可能需要删除锁并还原它。 锁属性如下所示:
- 名称:(与 CVO 资源组名称匹配)
- 类型: 删除
- 范围: CVO 资源组
NetApp 云卷 ONTAP 的锁列表可能会列出一个删除锁,需要在运行脚本以卸载 extensions.png 之前将其移除。
-
从 GitHub 页下载并安装最新版本的 Windows Installer (MSI) 代理,以获取Azure Windows VM 代理版本。 必须具有管理员权限才能完成安装。
症状
收到以下错误消息:
云卷 ONTAP 与 Azure VM 扩展不兼容。 VM 扩展当前安装在Azure VM 上。 请联系Microsoft Azure 支持删除这些扩展。
收到一条错误消息,指出云卷 ONTAP 不兼容 Azure 虚拟机扩展。
原因
云卷 ONTAP 不支持Azure VM 扩展,因为扩展会影响 BlueXP 管理操作。 尽管 CVO VM 在Azure门户中显示为 Linux(ONTAP 版本),但它实际上是 ONTAP 使用的 FreeBSD 操作系统的高度自定义派生。
注释
从 BlueXP 3.9.54 开始,NetApp 会在 BlueXP 中强制实施此预先存在的限制作为通知。
决议
若要解决此问题,请针对任何受影响的 NetApp CVO VM 运行以下脚本。
PowerShell
$subscriptionId = (Get-AzContext).Subscription.Id
$resourceGroup = "RGname"
$vmName = "VMName"
$apiVersion = "2025-04-01"
$uri = "https://management.azure.com/subscriptions/${subscriptionId}/resourceGroups/${resourceGroup}/providers/Microsoft.Compute/virtualMachines/${vmName}?api-version=${apiVersion}"
$response = Invoke-AzRestMethod -Method GET -Uri $uri
$vmModel = $response.Content | ConvertFrom-Json
$vmModel.resources = @()
$body = $vmModel | ConvertTo-Json -Depth 10 -Compress
Invoke-AzRestMethod -Method PUT -Uri $uri -Payload $body
CLI
subscriptionId=$(az account show --query id -o tsv)
resourceGroup="RGName"
vmName="VMName"
apiVersion="2025-04-01"
uri="https://management.azure.com/subscriptions/${subscriptionId}/resourceGroups/${resourceGroup}/providers/Microsoft.Compute/virtualMachines/${vmName}?api-version=${apiVersion}"
response=$(az rest --method get --uri "$uri")
vmModel=$(echo "$response" | jq '.resources = []')
az rest --method put --uri "$uri" --body "$vmModel"
注释
如果来宾代理不存在,此作可能需要 20-30 分钟才能完成。 之所以出现这种情况,是因为Azure CRP 首先轮询代理状态。 该脚本从 VM 模型中删除所有扩展。
详细信息
若要防止在没有来宾代理或扩展的 VM 中安装扩展,请禁用扩展。 可以通过策略定义或者设置AllowExtensionOperations至false来禁用扩展。
选项 1:设置策略定义
{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Compute/virtualMachines/extensions"
}
]
},
"then": {
"effect": "deny"
}
}
选项 2:将 AllowExtensionOperations 设置为 false
$vm = Get-AzVM -Name <VMName> -ResourceGroupName <ResourceGroupName>
$vm.OSProfile.AllowExtensionOperations = $false
$vm | Update-AzVM
References
在 Cloud Volume ONTAP 中安装 Azure VM 管理扩展
第三方信息免责声明
本文讨论的第三方产品由独立于Microsoft的公司制造。 Microsoft对这些产品的性能或可靠性不作任何默示或其他保证。
第三方联系人免责声明
Microsoft提供第三方联系信息,可帮助你查找有关本主题的其他信息。 此联系信息可能会更改,恕不另行通知。 Microsoft不能保证第三方联系信息的准确性。