我有一个大的地形脚本。在脚本末尾有一个代码块,用于备份虚拟机,但我不想备份测试虚拟机。我只需要主虚拟机备份。 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]
最佳答案
不幸的是,需要backup_policy_id
:
https://www.terraform.io/docs/providers/azurerm/r/backup_protected_vm.html#backup_policy_id
在这种情况下,我会添加更多变量来解决您对测试虚拟机的担忧
类似于:
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
}
关于azure - 用于检查条件的 Terraform 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61617841/