首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决azurerm_backup_protected_vm中的超时错误?

如何解决azurerm_backup_protected_vm中的超时错误?
EN

Stack Overflow用户
提问于 2021-03-02 16:50:37
回答 1查看 1.8K关注 0票数 0

我正在尝试使用terraform创建azurerm_backup_protected_vm,但是在创建资源时得到超时错误,下面是我的terraform文件。

标准版- v0.13.3

main.tf

代码语言:javascript
复制
resource "azurerm_resource_group" "example" {
  name     = "tfex-recovery_vault"
  location = "West US"
}

resource "azurerm_recovery_services_vault" "example" {
  name                = "tfex-recovery-vault"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  sku                 = "Standard"
}

resource "azurerm_backup_policy_vm" "example" {
  name                = "tfex-recovery-vault-policy"
  resource_group_name = azurerm_resource_group.example.name
  recovery_vault_name = azurerm_recovery_services_vault.example.name

  backup {
    frequency = "Daily"
    time      = "23:00"
  }
}

resource "azurerm_backup_protected_vm" "vm_backup" {
  resource_group_name = azurerm_resource_group.example.name
  recovery_vault_name = azurerm_recovery_services_vault.example.name
  source_vm_id        = azurerm_virtual_machine.example.id
  backup_policy_id    = azurerm_backup_policy_vm.example.id
}

当我运行terraform命令resource grouprecovery service vaultbackup policy是成功创建的,但是在创建backup policy时出错。

代码语言:javascript
复制
module.vm-linux.azurerm_backup_protected_vm.vm_backup: Still creating... [1h19m20s elapsed]
module.vm-linux.azurerm_backup_protected_vm.vm_backup: Still creating... [1h19m30s elapsed]
module.vm-linux.azurerm_backup_protected_vm.vm_backup: Still creating... [1h19m40s elapsed]
module.vm-linux.azurerm_backup_protected_vm.vm_backup: Still creating... [1h19m50s elapsed]
module.vm-linux.azurerm_backup_protected_vm.vm_backup: Still creating... [1h20m0s elapsed]

Error: Error waiting for the Azure Backup Protected VM "VM;iaasvmcontainerv2;PZI-GXU2-N-RGP-SB000-D065;U2ZSB000WDLV032" to be true (Resource Group "PZI-GXU2-N-RGP-SB000-D065") to provision: timeout while waiting for state to become 'Found' (last state: 'NotFound', timeout: 1h20m0s)

  on modules/vm-linux/main.tf line 76, in resource "azurerm_backup_protected_vm" "vm_backup":
  76: resource "azurerm_backup_protected_vm" "vm_backup" {
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-03 08:41:59

在本例中,我建议在与备份相关的资源中添加在……上面元参数,以确保在提供VM之后启用备份VM。

代码语言:javascript
复制
resource "azurerm_recovery_services_vault" "example" {
 #..
 depends_on = [azurerm_virtual_machine.example]
}

resource "azurerm_backup_policy_vm" "example" {
 #..
  depends_on = [azurerm_virtual_machine.example]

}

resource "azurerm_backup_protected_vm" "vm_backup" {
  #..
  depends_on = [azurerm_virtual_machine.example]

}

这里是提供更多参考的示例。

代码语言:javascript
复制
# This resource is defined to fix the timeout problem in the creation of 'azurerm_recovery_services_protected_vm.*' resources
resource "null_resource" "delay" {
  provisioner "local-exec" {
    command = "sleep 180"
  }

  depends_on = [
    "azurerm_virtual_machine.portal",
    "azurerm_virtual_machine.engine",
    "azurerm_virtual_machine.gateway",
  ]
}

resource "azurerm_recovery_services_protected_vm" "portal" {
  resource_group_name = "${data.azurerm_resource_group.default.name}"
  recovery_vault_name = "${data.terraform_remote_state.shell.backup_vault_name}"
  source_vm_id        = "${azurerm_virtual_machine.portal.id}"
  backup_policy_id    = "${data.terraform_remote_state.shell.backup_policy_id}"

  depends_on = ["null_resource.delay"]
}

resource "azurerm_recovery_services_protected_vm" "engine" {
  count               = "${var.number_of_engines}"
  resource_group_name = "${data.azurerm_resource_group.default.name}"
  recovery_vault_name = "${data.terraform_remote_state.shell.backup_vault_name}"
  source_vm_id        = "${element(azurerm_virtual_machine.engine.*.id, count.index)}"
  backup_policy_id    = "${data.terraform_remote_state.shell.backup_policy_id}"

  depends_on = ["null_resource.delay"]
}

resource "azurerm_recovery_services_protected_vm" "gateway" {
  count               = "${var.number_of_gateways}"
  resource_group_name = "${data.azurerm_resource_group.default.name}"
  recovery_vault_name = "${data.terraform_remote_state.shell.backup_vault_name}"
  source_vm_id        = "${element(azurerm_virtual_machine.gateway.*.id, count.index)}"
  backup_policy_id    = "${data.terraform_remote_state.shell.backup_policy_id}"

  depends_on = ["null_resource.delay"]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66443651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档