如何通过Terraform配置Azure Backup Protected VM,删除VM保留备份?
删除Azure虚拟机并保留备份的Terraform配置调整方案
要实现删除VM但保留备份的需求,核心是断开azurerm_backup_protected_vm与原虚拟机的依赖关联,避免Terraform在删除VM时同步销毁备份保护资源。具体操作步骤如下:
1. 确认备份已完成
在修改配置前,务必确保Azure已完成至少一次针对目标VM的备份任务,可通过Azure门户的恢复服务Vault查看备份状态。
2. 调整Terraform配置
步骤1:获取原VM的ID
执行以下命令从Terraform状态中提取原VM的ID:
terraform state show azurerm_windows_virtual_machine.vm | grep id
步骤2:修改备份保护资源配置
将azurerm_backup_protected_vm中的source_vm_id替换为上述获取到的VM ID(硬编码),同时移除与VM相关的依赖项,并删除VM及关联扩展的配置。修改后的示例代码如下:
# 获取备份策略 data "azurerm_backup_policy_vm" "backup_policy" { name = var.backup_policy_name resource_group_name = var.recovery_vault.resource_group_name recovery_vault_name = var.recovery_vault.name } # 保留备份保护资源,关联原VM的ID(硬编码) resource "azurerm_backup_protected_vm" "backup_vm" { resource_group_name = var.recovery_vault.resource_group_name recovery_vault_name = var.recovery_vault.name source_vm_id = "/subscriptions/你的订阅ID/resourceGroups/资源组名/providers/Microsoft.Compute/virtualMachines/原VM名称" backup_policy_id = data.azurerm_backup_policy_vm.backup_policy.id }
3. 应用配置变更
执行terraform plan预览变更,确认Terraform仅会删除VM资源,不会销毁备份保护资源。确认无误后执行terraform apply完成操作。
4. 验证备份状态
登录Azure门户,进入对应的恢复服务Vault,查看备份项列表,确认原VM的备份仍存在且可正常执行恢复操作。
额外提示
- 若后续无需通过Terraform管理该备份资源,可将
azurerm_backup_protected_vm从配置中移除,并执行terraform state rm azurerm_backup_protected_vm.backup_vm,将其从Terraform状态中剥离,后续直接通过Azure门户管理备份。 - 如需长期保留备份,可调整备份策略的保留规则,避免备份被自动清理。
内容的提问来源于stack exchange,提问作者Erylis
相关产品推荐
相关产品推荐

