← 中文资源

简体中文版本

妥善为 Terraform 模块做版本管理

为模块发布打标签、把来源精确固定到版本、记录输入输出,并提交锁文件使计划可复现。

阅读英文原文

概述

以移动分支引用模块,会让上游改动静默改变下次 apply 的结果,计划也因此不可复现。语义化标签加精确固定、提交依赖锁文件并记录接口契约,才能让每次执行可追溯且一致。

关键步骤

  1. 对模块发布做语义化打标签,并引用精确标签。
  2. 提交依赖锁文件。
  3. 记录输入输出并做校验。
  4. 先在预发工作区查看计划再应用到生产。

验证

  • 给定配置始终使用同一模块版本。
  • 计划在不同机器上可复现。
  • 升级时有可审阅的计划。
  • 生产者版本由锁文件固定。

注意事项

  • 固定模块意味着升级需手动进行,若不制度化可能落后于安全修复。
  • 锁文件对平台敏感,混合操作系统团队应使用 providers lock 命令。

适用范围

本条目围绕「妥善为 Terraform 模块做版本管理」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。

module "network" {
  source  = "git::https://github.com/acme/network.git?ref=v2.3.1"
  cidr    = var.cidr
}
# commit .terraform.lock.hcl
terraform providers lock -platform=linux_amd64 -platform=darwin_arm64