terraform plan和apply的区别
在Terraform中,terraform plan
和 terraform apply
是两个核心命令,分别用于生成执行计划和应用配置更改。以下是它们的主要区别:
1. 功能
-
terraform plan
:生成一个执行计划,列出根据当前配置将要进行的资源变更。它不会实际修改任何资源,只是模拟更改并显示将要发生的内容。 -
terraform apply
:应用执行计划,实际创建、更新或销毁资源以匹配配置。
2. 使用场景
-
terraform plan
:用于查看配置更改将如何影响现有基础设施,验证配置的正确性,避免意外变更。 -
terraform apply
:用于实际部署或更新基础设施,使配置生效。
3. 输出
-
terraform plan
:输出一个详细的执行计划,说明将要进行的资源创建、更新或销毁操作。可以将计划保存到文件(如plan.tfout
)供后续使用。 -
terraform apply
:输出资源变更的详细信息,确认是否继续执行。
4. 执行
-
terraform plan
:读取当前状态文件和配置,生成执行计划。可以使用-out
参数将计划保存到文件。 -
terraform apply
:可以使用之前保存的计划文件(如plan.tfout
)来应用更改,确保执行的变更与计划一致。也可以直接运行以应用当前配置的更改。
5. 安全性
-
terraform plan
:安全地检查配置,不会对现有基础设施造成影响。 -
terraform apply
:实际修改基础设施,需谨慎操作。
示例工作流程
-
编写或修改 Terraform 配置文件。
-
生成执行计划
terraform plan -out=plan.tfout
-
审查计划,确认变更无误。
-
应用计划:
terraform apply plan.tfout
-
验证基础设施已按计划更新。
总结
-
terraform plan
:用于模拟和查看即将进行的更改,确保配置正确。 -
terraform apply
:用于实际应用更改,创建、更新或销毁资源。
通过先使用 terraform plan
审查更改,再使用 terraform apply
应用更改,可以有效避免错误和意外的基础设施变更。