产品概述
产品优势
应用场景
module块引用模块。一个 module 块包含 module 关键字、module 名称和 module 体({}之间的部分)三部分。如下所示:module "servers" {source = "./app-cluster"servers = 5}
module调用可以使用下列参数:source:指定引用模块的源。version:指定引用模块的版本号。meta-arguments:Terraform 0.13开始支持的特性,类似 resource 与 data,可以用来操作 module 的行为,详情请参见 MetaData。source参数用来指定模块源,指定 Terraform 获取子模块源代码的方式。Terraform 在 terraform init 的安装步骤中,使用它将源代码下载到本地磁盘上,以便其他 Terraform 命令可以使用。
模块安装程序支持从以下源类型进行安装:module "consul" {source = "./consul"}
<NAMESPACE>/<NAME>/<PROVIDER> 形式的源地址来引用,您可在模块介绍中获取确切的源地址。例如:module "consul" {source = "hashicorp/consul/xxx"version = "0.1.0"}
module "consul" {source = "app.terraform.io/example-corp/k8s-cluster/azurerm"version = "1.1.0"}
github.com 为前缀时,会将其自动识别为一个 GitHub 源。例如,使用 HTTPS 协议克隆仓库: module "consul" {source = "github.com/hashicorp/example"}
module "consul" {source = "git@github.com:hashicorp/example.git"}
registry 作为模块源时,可以使用 version 元参数约束使用的模块版本。例如:module "consul" {source = "hashicorp/consul/xxx"version = "0.0.5"servers = 3}
version 元参数的格式与 Provider 版本约束的格式一致。在满足版本约束的前提下,Terraform 会使用当前已安装的最新版本的模块实例。若当前没有满足约束的版本被安装过,则会下载符合约束的最新的版本。version 元参数只能配合 registry 使用,支持公共的或私有的模块仓库。其他类型的模块源不一定支持版本化,本地路径模块不支持版本化。文档反馈