0Pricing
DevOps Bootcamp · 课时

将模块发布到注册表

通过在 Git 中进行版本控制并发布到公共或私有模块注册表,在团队之间共享可复用的 Terraform 模块。

将模块发布到注册表 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 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 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「将模块发布到注册表」这节课中我会学到什么?

通过在 Git 中进行版本控制并发布到公共或私有模块注册表,在团队之间共享可复用的 Terraform 模块。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「将模块发布到注册表」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Terraform 模块简介
  2. 创建可复用模块
  3. 使用工作区管理环境
  4. 将模块发布到注册表
← 返回 DevOps Bootcamp