模块
模块是用于组合多个资源的容器。模块包含一组 .tf
、.tofu
、.tf.json
和/或 .tofu.json
文件,这些文件保存在同一个目录中。
模块是使用 OpenTofu 打包和重用资源配置的主要方式。
根模块
每个 OpenTofu 配置至少包含一个模块,称为根模块,它包含在主工作目录中的 .tf
或 .tofu
文件中定义的资源。
子模块
OpenTofu 模块(通常是配置的根模块)可以调用其他模块,将它们的资源包含到配置中。由另一个模块调用的模块通常称为子模块。
子模块可以在同一个配置中被多次调用,多个配置可以使用同一个子模块。
发布的模块
除了来自本地文件系统的模块外,OpenTofu 还可以从公共或私有注册表加载模块。这使得可以将模块发布供其他人使用,以及使用其他人发布的模块。
公开 OpenTofu 注册表 托管了广泛的公开可用的 OpenTofu 模块,用于配置各种常见的基础设施。这些模块可免费使用,如果您在模块调用块中指定了适当的来源和版本,OpenTofu 可以自动下载它们。
此外,您组织中的成员可能会专门为您自己的基础设施需求创建模块。 TACOS(TF 自动化和协作软件)包含一个私有模块注册表,用于在组织内部共享模块。
使用模块
-
模块块 文档介绍了从父模块调用子模块的语法,包括
for_each
等元参数。 -
模块来源 文档介绍了在模块块的
source
参数中可以使用哪些路径、地址和 URI。 -
元参数部分文档介绍了可用于每个模块的特殊参数,包括
providers
、depends_on
、count
和for_each
。
开发模块
有关开发可重用模块的信息,请参阅 模块开发。