使用Terraform+Azure CAF创建管理组失败:资源已存在需导入状态
解决Terraform部署Azure登陆区时管理组已存在的错误
错误原因很明确:你手动创建过的管理组已经存在于Azure租户中,但Terraform本地状态里没有这个资源的记录,执行apply时Terraform尝试创建同名资源就会触发冲突。
解决步骤:
从错误提示里提取两个关键信息:
- Terraform中对应的资源地址:
module.enterprise_scale.azurerm_management_group.level_1["/providers/Microsoft.Management/managementGroups/xxxxxxxxxxxxxxxxxxxxx"] - Azure中已存在的管理组ID:
/providers/Microsoft.Management/managementGroups/xxxxxxxxxxxxxxxx
- Terraform中对应的资源地址:
执行Terraform导入命令,把已存在的管理组纳入Terraform状态管理:
terraform import 'module.enterprise_scale.azurerm_management_group.level_1["/providers/Microsoft.Management/managementGroups/xxxxxxxxxxxxxxxxxxxxx"]' "/providers/Microsoft.Management/managementGroups/xxxxxxxxxxxxxxxx"
(Windows命令行环境下,需要转义内部引号,写法为:"module.enterprise_scale.azurerm_management_group.level_1[\"/providers/Microsoft.Management/managementGroups/xxxxxxxxxxxxxxxxxxxxx\"]")
导入完成后,重新运行
terraform plan,确认Terraform已识别该管理组,不会再尝试创建它。最后再次执行
terraform apply "azure-landing-zones.plan",完成登陆区部署。
如果后续还遇到其他“资源已存在”的类似错误,按照相同逻辑,将对应资源导入Terraform状态即可。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

