如何防止地形破坏和重新创建 VM Azure VM 扩展。生命周期块不起作用



如何防止terraform破坏和重新创建azure虚拟机扩展?生命周期代码块不起作用。Terraform持续破坏资源,当我启用锁时失败。有没有人能告诉我我哪里出错了?

这是我的代码

resource "azurerm_virtual_machine_extension" "dsc" {
for_each = var.dsc_agent_name
name                       = each.key
virtual_machine_id         = each.value
publisher                  = "Microsoft.Powershell"
type                       = "DSC"
type_handler_version       = "2.0"
auto_upgrade_minor_version = "true"
tags                       = local.tags
lifecycle {
prevent_destroy = true
}
settings = <<SETTINGS
{
"ModulesUrl":"",
"SasToken":"",
"WmfVersion": "latest",
"Privacy": {
"DataCollection": ""
},
"ConfigurationFunction":""
}
SETTINGS
}

您可以尝试在:

lifecycle {
prevent_destroy = true
ignore_changes = [ VMDiagnosticsSettings ]
}

这样,它将忽略在Azure资源上设置的内容以及在TF

中声明的内容(如果本节有的话)。

尝试删除生命周期块,然后运行'terraform plan' -它应该会显示哪个配置项导致它被销毁/重新创建

设法解决这个问题-我基本上使用忽略所有属性的更改非常感谢@MarkoE和AC81

最新更新