我们在开始一个 Terraform 工程项目的时候,首先要做的就是 terraform init
, 这个动作会在当前工作目录下创建 .terraform
目录,并联网下载项目所需要的 provider
到该目录下。 即便是多个项目使用的是同样的 provider
,但每个工程项目仍然都有自己单独的 .terraform
, 这不仅仅会浪费磁盘空间,还会花费很多不必要的时间去等待联网下载 provider
,好在 Terraform 官方为我们提供了缓存目录。
配置文件方式(推荐)
Terraform 和其他诸多命令行工具一样,也可以拥有用户级的配置文件(类似 .vimrc
, .npmrc
, .zshrc
等),Terraform 的配置文件可以用来定义凭证,provider 缓存目录等。
Windows 下,该文件必须位于 %APPDATA%
下,并被命名为 terraform.rc
。
macOS 与 Linux 下,该文件位于用户家目录~
下,命名为 .terraformrc
。
这里以 Linux 为例:1
2
3
4cd ~
缓存目录需要提前创建,terraform 不会帮我们创建
mkdir -p mkdir -p ~/.terraform.d/plugin-cache
vim ~/.terrafromrc
内容为:1
2plugin_cache_dir = "$HOME/.terraform.d/plugin-cache"
disable_checkpoint = true
这样配置后,每次 terraform init
都会先去缓存目录下寻找是否存在 provider
的缓存。极大的加速了 init
的过程。
环境变量方式(不推荐)
同样的,我们可以通过环境变量临时为 Terraform 指定 provider
缓存:1
export TF_PLUGIN_CACHE_DIR="$HOME/.terraform.d/plugin-cache"