環境
- macOS Mojave 10.14.6
- Terraform 0.12.18
背景
Terraform を学習するために、テスト用の resource.tf を作成。
provider "aws" {
}
variable "AWS_REGION" {
type = string
}
resource "aws_instance" "example" {
ami = var.AMIS[var.AWS_REGION]
instance_type = "t2.micro"
}
terraform init は正常に完了しました。
terraform init
エラー内容
terraform console を打つと次のエラーが発生。
terraform console
Error: Could not satisfy plugin requirements
Plugin reinitialization required. Please run "terraform init".
Plugins are external binaries that Terraform uses to access and manipulate
resources. The configuration provided requires plugins which can't be located,
don't satisfy the version constraints, or are otherwise incompatible.
Terraform automatically discovers provider requirements from your
configuration, including providers used in child modules. To see the
requirements and constraints from each module, run "terraform providers".
Error: provider.aws: no suitable version installed
version requirements: "(any version)"
versions installed: none
前述の通り、terraform init は実行済みですが、Error: provider.aws: no suitable version installed とあるので、terraform-provider-aws がちゃんとインストールされていないようです。
(ググってみると、同じ問題で困ってる人が多そうでした。)
対処法
terraform init では上手くいかないので、手動でプラグインをインストールします。
手動インストール
まずは terraform-provider-aws で zip ファイルをダウンロード。(macOS の場合は darwin_amd64 を選択)
ダウンロードしたファイルを ~/.terraform.d/plugins/darwin_amd64 配下に展開します。
cd ~/.terraform.d/
mkdir plugins
cd plugins
mkdir darwin_amd64
cd darwin_amd64
unzip ../../../Downloads/terraform-provider-aws_2.43.0_darwin_amd64.zip
これで手動インストールは完了。
pwd
/Users/[username]/.terraform.d/plugins/darwin_amd64
ls
terraform-provider-aws_v2.43.0_x4
terraform init で -plugin-dir を指定
続・エラー内容
上記、手動インストール後 terraform console すると、なおも同じエラーが発生します。
terraform console
Error: Could not satisfy plugin requirements
Plugin reinitialization required. Please run "terraform init".
Plugins are external binaries that Terraform uses to access and manipulate
resources. The configuration provided requires plugins which can't be located,
don't satisfy the version constraints, or are otherwise incompatible.
Terraform automatically discovers provider requirements from your
configuration, including providers used in child modules. To see the
requirements and constraints from each module, run "terraform providers".
Error: provider.aws: no suitable version installed
version requirements: "(any version)"
versions installed: none
続・対処法
terraform init の -plugin-dir でプライグインのパスを指定するとエラーが解消されました。
terraform init -plugin-dir="/Users/[username]/.terraform.d/plugins/darwin_amd64"
terraform console
>