Terraform Provider的全网标识符
Terraform的Provider在全网的的标识符由三部分组成,分别为
hostname
,
namespace
和
type
组成,即
<hostname>/<namespace>/<type>
。
hostname
是指分发、下载Provider的域名,默认为
registry.terraform.io
namespace
是指提供、开发Provider的组织的命名空间,默认为
hashicorp
type
是指Provider的具体类型。
例如有以下Terraform模板:
terraform {
required_providers {
alicloud = {
source = "aliyun/alicloud"
version = "1.126.0"
}
}
}
上述模板使用
terraform init
命令会默认去
registry.terraform.io
下载
aliyun
开发的
alicloud
Provider的
1.126.0
版本。
本地安装Terraform Provider
如果使用本地安装插件有两种方法。首先两种方法都需要将下载的Provider或者本地编译完成的Provider放置在以下文件目录层级:
XX(e.g. /usr/share/terraform/providers/)
└── <hostname>(e.g. registry.terraform.io)
└── <namespace>(e.g. aliyun)
└── <type>(e.g. alicloud)
└── <version>(e.g. 1.127.0)
└── <your OS>(e.g. linux_amd64)
└── <binary file>(e.g. terraform-provider-alicloud)
方法一:使用terraform init的自带参数
第一种方法,使用
terraform init
的
plugin-dir
参数:
terraform init -plugin-dir=/usr/share/terraform/providers
方法二:编写配置文件
第二种方法,编写
./terraformrc
配置文件,该文件需要放在
$HOME/
目录下:
provider_installation {
filesystem_mirror {
path = "/usr/share/terraform/providers"
include = ["registry.terraform.io/*/*"]
}
}
其中include字段是指符合该通配符全网标识符的Provider,需要去
/usr/share/terraform/providers
查找本地Provider。
./terraformrc
的编写更详细的参数可以参考
官网