terraform initで「Failed to query available provider packages」が発生した時の対処法
自宅サーバ用途でESXiを導入しました。WebからポチポチしてVMを立てるのは大変なので、terraformを使ってコードで管理しようと思います。
使用したプラグインは以下になります。
- Registry: josenk/esxi | Terraform Registry
- GitHub: josenk/terraform-provider-esxi: Terraform-provider-esxi plugin
使用しているterraformのversionは以下になります。(Mac環境を使用しています)
$ terraform -v
Terraform v0.15.4
on darwin_amd64
エラー内容
はじめにterraform init
で使用するprovider pluginの設定を行いますが、この時点でエラーが発生しました。
$ terraform init
Initializing the backend...
Initializing provider plugins...
- Finding latest version of hashicorp/esxi...
╷
│ Error: Failed to query available provider packages
│
│ Could not retrieve the list of available versions for provider hashicorp/esxi: provider registry registry.terraform.io does not have a
│ provider named registry.terraform.io/hashicorp/esxi
│
│ All modules should specify their required_providers so that external consumers will get the correct providers when using a module. To see
│ which modules are currently depending on hashicorp/esxi, run the following command:
│ terraform providers
使用したファイルは以下になります。
terraform {
required_providers {
esxi = {
source = "hashicorp/esxi"
}
}
}
provider "esxi" {
esxi_hostname = "192.168.0.2" # ESXiのIPアドレス
esxi_hostport = "22"
esxi_hostssl = "443"
esxi_username = "root" # ESXiにSSHするときのUSER
esxi_password = "pa$$w0rd" # ESXiにSSHするときのPASSWORD
}
resource "esxi_guest" "vmtest" {
guest_name = "vmtest"
disk_store = "datastore1"
network_interfaces {
virtual_network = "VM Network"
mac_address = "00:50:56:00:00:00"
}
}
対処法
source = "hashicorp/esxi"
という指定が間違っていたので、source = "josenk/esxi"
に修正して対処しました。(公式ドキュメントにも書いてありました、、)
terraform {
required_providers {
esxi = {
source = "josenk/esxi" # ここを修正
}
}
}
terraform 0.13からProviderが https://registry.terraform.io/ から配布されるので、source = "<Provider名>/<プラグイン名>"
と記載することで https://registry.terraform.io/ からプラグインを探しにいきます。
また、source = "registry.terraform.io/josenk/esxi"
と記載しても同じ動作になります。
プラグインを使用する際には、レジストリのWebページにアクセスして右上の「USE PROVIDER」をクリックすると、必要なterraformのversionとコードが見れるので、表示された通りに記載すれば問題ないです。
Reference
Author And Source
この問題について(terraform initで「Failed to query available provider packages」が発生した時の対処法), 我々は、より多くの情報をここで見つけました https://qiita.com/yumenomatayume/items/fbd4fd2ccd88c88079e7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .