Argument "recovery_vault_name" not found while creating the recovery service vault using Terraform

sachin gupta 376 Reputation points
2023-02-16T01:52:07.5666667+00:00

I am using Terraform Script to create a Recovery Service Vault and need to take the VM backup into that recovery service vault. Below is the terraform script and steps I performed:

  1. Create Recovery Service Vault
  2. Define backup policy
  3. Azure VM protection backup

Terraform Version >= 0.14 Azure rm version= ~>2.0

Main.tf

resource "azurerm_recovery_services_vault" "recovery_vault" {
  name                = var.recovery_vault_name
  location            = var.location
  resource_group_name = var.resource_group_name
}

resource "azurerm_backup_policy_vm" "ss_vm_backup_policy" {
  name                = "tfex-recovery-vault-policy"
  resource_group_name =  var.resource_group_name
  recovery_vault_name = azurerm_recovery_services_vault.recovery_vault.name
  
  policy_type         =   "V1"

  backup {
    frequency = "Monthly"
    time      = "23:00"
     weekdays  = ['Sunday']
  }
  instant_restore_retention_days = 5
  retention_weekly {
     count= 12
     weekdays  = ['Sunday']
   }
}

resource "azurerm_backup_protected_vm" "ss_vm_protection_backup" {
  resource_group_name =  var.resource_group_name
  recovery_vault_name = azurerm_recovery_services_vault.recovery_vault.name
  source_vm_id        = azurerm_windows_virtual_machine.windows_vm[count.index].id
  backup_policy_id    = azurerm_backup_policy_vm.ss_vm_backup_policy.id
}

variable.tf

variable resource_group_name {
   default = "ss"
} 

variable recovery_vault_name {
   default = "yy"
} 

Referred the above Main.tf in my application specific main.tf file as below:

module "azure_windows_vm" {

    source = "git::https://xx.yy.com/ABCD/_git/NBGF/TGFT?ref=master"
    vm_name = local.vm_name
    location = local.location
    resource_group_name = local.resource_group_name
    admin_password = "xyz"
    num_vms = 2
    vnet_name = var.vm_subnet_id
    tags=local.tags
}

When I execute the above Terraform script in DevOps pipeline, I am getting below error from line where module "azure_windows_vm" starts

Error: Missing required argument The argument "recovery_vault_name" is required, but no definition was found

I tried different things to fix this error, but somehow it is not working. Can someone please guide what I am missing here?

Thank You!

Azure Backup
Azure Backup
An Azure backup service that provides built-in management at scale.
1,499 questions
{count} votes

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.