От новичка до гуру: Курсы программирования на CyberDuff

Как устранить ошибку тайм-аута в azurerm_backup_protected_vm?

Я пытаюсь создать azurerm_backup_protected_vm с помощью terraform, но получаю сообщение об ошибке тайм-аута при создании ресурса. Ниже приведен мой файл terraform.

Версия Terraform – v0.13.3

main.tf

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 apply, resource group, recovery service vault, backup policy создается успешно, но при создании azurerm_backup_protected_vm возникает следующая ошибка

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" {

Ответы:


1

В этом случае я хотел бы предложить добавить depends_on Метааргумент в ресурсах, связанных с резервным копированием, чтобы убедиться, что резервная виртуальная машина будет включена после подготовки виртуальной машины.

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]

}

здесь приведен пример дополнительных ссылок.

# 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"]
}
 
03.03.2021
Новые материалы

Python: модульное тестирование
Когда вы пишете свой код, вы хотите разработать метод для тестирования вашей программы. Модульный тест — это код, предназначенный для автоматической проверки ошибок при разработке программы...

Растущая угроза атак с захватом учетных записей
Растущая угроза атак с захватом учетных записей Как было показано на мероприятии Future of Cyber ​​Security в Манчестере, Великобритания. Боты существуют уже много лет. Это не «будущее»?..

Лама 2: новое поколение языковой модели с открытым исходным кодом от Meta и Microsoft
Meta и Microsoft объединили усилия, чтобы представить Llama 2, последнюю версию их модели большого языка с открытым исходным кодом. С его выпуском Llama 2 теперь доступна как для исследований,..

Окончательные классы и классы только для чтения в PHP
выпускные классы В прошлом, когда вы не хотели, чтобы другие классы расширяли определенный класс, вы могли пометить его как final . Рассмотрим код ниже: <?php namespace App\Utils;..

Понимание видео в 2 строки
В этой статье я покажу вам, как выполнять задачи распознавания изображений и понимания видео всего за 2 строки кода, используя TensorFlow.JS . Для обнаружения объектов: модель =..

Создание сайта по сбору средств для художников и благотворительных организаций за два уик-энда
Вот как я это сделал. Использование Google Cloud, Grow.io и Stripe. Когда к власти пришла новая администрация и начали поступать распоряжения и политика, с которыми я был не согласен, я..

Простая и согласованная среда разработки C++
Обычной проблемой для изучающих C++ является выбор хорошей среды разработки. Множество вариантов выбора, большинство из которых существенно влияют на пользовательский опыт. Сегодня я проведу..