1.7.15.1.1. terraform providers mirror
该子命令从 Terraform 0.13 开始引入。
terraform providers mirror
命令下载当前代码所需要的 Provider 并且将其拷贝到本地文件系统的一个目录下。
一般情况下,terraform init
会在初始化当前工作目录时自动从 registry 下载所需的 Provider。有时 Terraform 工作在无法执行该操作的环境下,例如一个无法访问 registry 的局域网内。这时可以通过显式配置 Provider 安装方式来使得在这样的环境下 Terraform 可以从本地插件镜像存储中获取插件。
terraform providers mirror
命令可以自动填充准备用以作为本地插件镜像存储的目录。
1.7.15.1.1.1. 用法
terraform providers mirror [options] <target-dir>
target-dir
参数是必填的。Terraform 会自动在目标目录下建立起插件镜像存储所需的文件结构,填充包含插件文件的 .zip
文件。
Terraform同时会生成一些包含了合法的网络镜像协议响应的 .json
索引文件,如果我们把填充好的文件夹上传到一个静态站点,那就能够得到一个静态的网络插件镜像存储服务。Terraform 在使用本地文件镜像存储时会忽略这些镜像文件,因为使用本地文件镜像时文件夹本身的信息更加权威。
该命令支持如下可选参数:
-platform=OS_ARCH
:选择构建镜像的目标平台。默认情况下,Terraform 会使用当前运行 Terraform 的平台。可以多次设置该参数以构建多目标平台插件镜像目标平台必须包含操作系统以及 CPU 架构。例如:
linux_amd64
代表运行在 AMD64 或是 X86_64 CPU 之上的 Linux 操作系统。
我们可以针对已构建的镜像文件夹重新运行 terraform providers mirror
来添加新插件。例如,可以通过设置 -platform
参数来添加新目标平台的插件,Terraform 会下载新平台插件同时保留原先的插件,将二者合并存储,并更新索引文件。