Скрипт Terraform для проверки состояния - PullRequest
1 голос
/ 05 мая 2020

У меня большой скрипт терраформирования. В конце сценария есть блок кода, который делает резервную копию виртуальной машины, но я не хочу создавать резервную копию тестовых виртуальных машин. Мне просто нужна резервная копия основных виртуальных машин. Есть ли в terraform какой-либо сценарий для проверки виртуальной машины и перехода к сценарию резервного копирования.

resource "Azurerm_backup_protected_vm" "db"
  Count                          = var.db-nodecount
  resource_group_name            = var.mgmtrg.name
  recovery_vault_name            = var.mgmtrv.name
  source_vm_id                   = element(azurerm_virtual_machine.db.*.id, count.index)
  backup_policy_id               = var.db-policy.id
  lifecycle{
    ignore_changes = [
      backup_policy_id,
      recovery_vault_name,
      tags
     ]
  }
} 

Изображение для журналов [! [Изображение для журналов] [1]] [1]

1 Ответ

0 голосов
/ 06 мая 2020

К сожалению, требуется backup_policy_id:
https://www.terraform.io/docs/providers/azurerm/r/backup_protected_vm.html#backup_policy_id

В этом случае я бы добавил еще несколько переменных, чтобы решить ваши проблемы с тестовыми виртуальными машинами
Something например:

resource "azurerm_backup_protected_vm" "db"
  count               = var.db-nodecount
  resource_group_name = var.mgmtrg.name
  recovery_vault_name = var.mgmtrv.name
  source_vm_id        = element(azurerm_virtual_machine.db.*.id, count.index)
  backup_policy_id    = var.env == "tst" ? var.db-tst-policy.id : var.db-policy.id
}

Просто нужно создать тестовую backup_policy (azurerm_backup_policy_vm), которая делает резервную копию, возможно, раз в 100 лет


Другой вариант не может быть создан azurerm_backup_protected_vm вообще:

resource "azurerm_backup_protected_vm" "db"
  count                = var.env == "tst" ? 0 : var.db-nodecount
  resource_group_name  = var.mgmtrg.name
  recovery_vault_name  = var.mgmtrv.name
  source_vm_id         = element(azurerm_virtual_machine.db.*.id, count.index)
  backup_policy_id     = var.db-policy.id
}
...