跳至主要内容

模块

模块是用于组合多个资源的容器。模块包含一组 .tf.tofu.tf.json 和/或 .tofu.json 文件,这些文件保存在同一个目录中。

模块是使用 OpenTofu 打包和重用资源配置的主要方式。

根模块

每个 OpenTofu 配置至少包含一个模块,称为根模块,它包含在主工作目录中的 .tf.tofu 文件中定义的资源。

子模块

OpenTofu 模块(通常是配置的根模块)可以调用其他模块,将它们的资源包含到配置中。由另一个模块调用的模块通常称为子模块

子模块可以在同一个配置中被多次调用,多个配置可以使用同一个子模块。

发布的模块

除了来自本地文件系统的模块外,OpenTofu 还可以从公共或私有注册表加载模块。这使得可以将模块发布供其他人使用,以及使用其他人发布的模块。

公开 OpenTofu 注册表 托管了广泛的公开可用的 OpenTofu 模块,用于配置各种常见的基础设施。这些模块可免费使用,如果您在模块调用块中指定了适当的来源和版本,OpenTofu 可以自动下载它们。

此外,您组织中的成员可能会专门为您自己的基础设施需求创建模块。 TACOS(TF 自动化和协作软件)包含一个私有模块注册表,用于在组织内部共享模块。

使用模块

  • 模块块 文档介绍了从父模块调用子模块的语法,包括 for_each 等元参数。

  • 模块来源 文档介绍了在模块块的 source 参数中可以使用哪些路径、地址和 URI。

  • 元参数部分文档介绍了可用于每个模块的特殊参数,包括 providersdepends_oncountfor_each

开发模块

有关开发可重用模块的信息,请参阅 模块开发