問題
ディスク領域不足のアラートが出た。
terraformerのimportを何度も繰り返したせいで、作業ディレクトリ全部にTerrafromのプロバイダープラグインがダウンロードされていたのが原因。
サマリ―
Terraform作業ディレクトリの容量を節約するには、プラグインをキャッシュするとよい。
作業ログ
作業ログを残しておきます。
ホームディレクトリに.terraformrc
を作成し、キャッシュディレクトリを設定する。
$ cd # ホームディレクトリに移動 $ cat << EOF > .terraformrc plugin_cache_dir = "$HOME/.terraform.d/plugin-cache" EOF
作業ディレクトリの使用容量を確認しておく。
$ du -hs 235M .
プラグインを削除。
$ rm -rf .terraform/
terraform init
でエラーが発生。
$ terraform init There are some problems with the CLI configuration: ╷ │ Error: The specified plugin cache dir /home/jhashimoto/.terraform.d/plugin-cache cannot be opened: stat /home/jhashimoto/.terraform.d/plugin-cache: no such file or directory │ ╵
公式ドキュメントに情報があった。
CLI Configuration - Terraform by HashiCorp
This directory must already exist before Terraform will cache plugins; Terraform will not create the directory itself.
キャッシュディレクトリはTeraformが作成してくれると思ってたが、事前に作らないといけなかった。
ディレクトリを作成してリトライしたら、成功した。
$ mkdir -p "$HOME/.terraform.d/plugin-cache" $ terraform init Initializing the backend... Initializing provider plugins... - terraform.io/builtin/terraform is built in to Terraform - Reusing previous version of hashicorp/aws from the dependency lock file - Using hashicorp/aws v3.68.0 from the shared cache directory ... Terraform has been successfully initialized! ...
Using hashicorp/aws v3.68.0 from the shared cache directory
からキャッシュを利用しているのがわかる。
プラグインをキャッシュした分使用量が減っている。
$ du -hs 465K .
念のためplanできるか確認。
$ terraform plan ... You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure. ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.
実行環境
$ terraform --version Terraform v1.0.9 on linux_amd64
ubuntu-20.04 on Windows 10 (WSL2)