環境
- macOS Mojave 10.14.6
- Terraform 0.12.18
背景
Terraform を学習するために、テスト用の resource.tf
を作成。
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
>