运行terraform apply两次会有什么后果?是否会重复创建所有资源?
Terraform 连续执行两次
terraform apply 的运行表现说明 核心结论
正常场景下不会重复创建已经完成部署的资源,具体运行表现分几种情况:
- 第一次
apply执行完毕后,如果没有修改过Terraform配置文件、也没有手动改动过云平台上已经部署的真实资源,第二次执行terraform apply时,工具会先完成三方比对:本地配置、本地terraform.tfstate状态文件、云平台真实资源状态,比对确认没有差异后会直接提示无变更需要执行,不会发起任何资源操作请求。 - 如果两次
apply之间修改过Terraform配置,工具只会针对变更的资源部分执行对应的创建、修改或删除操作,其他已经符合配置要求的存量资源不会被触碰,更不会全量重建。 - 如果已经部署的资源被手动在云平台控制台修改过配置,第二次
apply会尝试把资源的配置修正回和Terraform声明的配置一致的状态,只有部分不重建就无法修改的参数变更(比如云服务器的操作系统镜像、可用区属性等)才会触发单个资源的销毁重建,不会影响其他资源。
异常场景提示:如果出现第二次
apply要全量重建所有资源的情况,通常是本地状态文件丢失、状态文件被篡改、或是使用了存在缺陷的Provider导致的,不属于工具的正常运行表现。
内容的提问来源于stack exchange,提问作者Lagrange
相关产品推荐
相关产品推荐

