)
Terraform 模块版本管理实践:以 Web Server 模块为例在实际的基础设施代码开发中,模块往往需要持续迭代。如何在不同的环境(如 stage 和 prod)中安全地使用不同版本的模块,是保证稳定性和快速验证的关键。本文以 webserver 模块为例,演示如何使用 Git 标签为模块打版本(v0.0.1、v0.0.2),并在根模块中为 stage 环境引用 v0.0.1,为 prod 环境引用 v0.0.2。1. Terraform 模块版本控制概述Terraform 模块可以存放在本地文件系统、Git 仓库、HTTP URL 或 Terraform Registry 中。当模块需要迭代时,推荐使用语义化版本(Semantic Versioning,如 v0.0.1、v0.0.2),并通过版本约束来锁定每个环境使用的版本。· 好处: · stage 环境可以先升级到新版本进行验证。 · prod 环境继续使用稳定旧版本,待验证通过后再升级。 · 避免“一人改模块,全员受影响”的问题。2. 模块仓库结构与版本标签假设我们有一个独立的 Git 仓库 terraform-aws-webserver,其结构如下:```terraform-aws-webserver/├── main.tf├── variables.tf├── outputs.tf└── README.md```模块内容(以 AWS EC2 为例):