Terraform Plugin Cache
背景
最近在查看terraform项目大小时,发现整个文件夹竟然有1.2G
原来是每个小项目都有一个plugins文件夹,里面下载了相同的provider插件,这个插件大小有100多M。
那么,能不能避免每次都下载相同的文件呢?这样一来节省执行terraform init
命令的时间,不用下载这么大的插件;另一方面,可以节省项目的空间。
解决方案
参考文档:https://www.terraform.io/docs/commands/cli-config.html
思路很简单——将plugin缓存到公共文件夹,这样每个terraform项目都使用了相同的plugin。
具体操作如下:
mac/linux
用户新建一个~/.terraformrc
文件,里面内容如下:
plugin_cache_dir = "$HOME/.terraform.d/plugin-cache"
如果
$HOME/.terraform.d/plugin-cache
这个目录不存在,要手动新建下。
这样,每次执行terraform init
:
- 如果缓存目录里已有对应的插件,直接使用该插件。
- 如果不存在,先下载到缓存目录。
验证
在某个项目执行terraform init
后,发现$HOME/.terraform.d/plugin-cache
目录下多出来了对应的plugin文件:
以后,在其他项目目录下执行terraform init
后,会直接使用该缓存文件: