将模块发布到注册表
通过在 Git 中进行版本控制并发布到公共或私有模块注册表,在团队之间共享可复用的 Terraform 模块。
将模块发布到注册表 是 CoddyKit 上的免费 Terraform Infrastructure as Code 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Terraform Infrastructure as Code 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Terraform Infrastructure as Code 课程共包含 4 节课。
超越本地模块
本地模块位于配置文件旁边的文件夹中。要在项目和团队之间共享模块,您可以将它们发布到模块注册表,这样使用者就能像使用包管理器一样,按名称和版本获取模块。
模块源
source 参数决定 Terraform 从哪里获取模块。选项包括:
- 本地路径
- Git 仓库
- Terraform 公共注册表
- Terraform Cloud 中的私有注册表
使用注册表模块
注册表模块采用 namespace/name/provider 格式。请始终固定版本,以确保构建结果可复现。
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "5.1.2"
name = "my-vpc"
cidr = "10.0.0.0/16"
}仓库命名约定
公共注册表要求使用特定的仓库名称:terraform-PROVIDER-NAME。例如,AWS 的网络模块应存放在名为 terraform-aws-network 的仓库中。
标准模块结构
可发布的模块应采用规范的目录布局,以便注册表自动为其生成文档。
terraform-aws-network/
main.tf
variables.tf
outputs.tf
README.md
examples/
basic/main.tf记录输入
每个变量都应具有 description,并且最好具有 type。注册表会自动将这些内容转换为输入说明表。
variable "cidr" {
type = string
description = "The CIDR block for the VPC"
default = "10.0.0.0/16"
}使用 Git 标签进行版本管理
注册表根据语义化版本 Git 标签确定模块版本。为发布版本添加标签后,使用者才能获取新版本。
git tag v1.0.0
git push origin v1.0.0直接固定 Git 源
您可以跳过注册表,直接通过 URL 引用 Git 仓库,并使用 ref 查询参数固定到某个标签。
module "network" {
source = "git::https://github.com/acme/terraform-aws-network.git?ref=v1.0.0"
cidr = "10.0.0.0/16"
}私有注册表
Terraform Cloud 和 Enterprise 提供私有注册表,使内部模块在保持机密的同时,仍可通过相同的名称/版本流程供组织成员发现。
语义化版本约束
使用版本约束来实现安全升级。~> 运算符允许进行补丁版本和次版本升级,但不允许进行可能造成破坏的主版本升级。
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "~> 5.1"
}刷新模块版本
更改版本约束后,请运行 terraform init -upgrade,以获取允许范围内的最新版本并更新锁定文件。
terraform init -upgrade快速检查
检查您对模块版本管理的掌握程度。
回顾:共享模块
您已学会发布和使用模块:
terraform-PROVIDER-NAME仓库命名规则。- 包含文档化输入和输出的标准结构。
- Git 标签决定注册表中的版本。
- 使用
~>等版本约束确保升级安全。
现在,您的可复用模块可以为组织中的每个项目提供支持。
用 AI 导师学习 Terraform Infrastructure as Code — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 12
- 课程
- 48
常见问题解答
「将模块发布到注册表」课时是免费的吗?
是的 — 「将模块发布到注册表」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Terraform Infrastructure as Code 课程的其余内容,请升级到 CoddyKit PRO。 Terraform Infrastructure as Code 课程共包含 4 节课。
「将模块发布到注册表」这节课中我会学到什么?
通过在 Git 中进行版本控制并发布到公共或私有模块注册表,在团队之间共享可复用的 Terraform 模块。 你通过在浏览器中直接运行的动手代码来练习 Terraform Infrastructure as Code,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Terraform Infrastructure as Code 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Terraform Infrastructure as Code 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「将模块发布到注册表」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Terraform Infrastructure as Code 课中编写并运行代码吗?
能。每节 Terraform Infrastructure as Code 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Terraform 模块简介
- 创建可复用模块
- 使用工作区管理环境
- 将模块发布到注册表