安装的provider插件与依赖锁文件中选择的包不一致:

问题描述 投票:0回答:1

我不断收到此错误,持续这基本上是一个旧的地形错误 显然我的锁定文件已损坏,我尝试删除锁定文件,然后删除 terraform init,并使用 .terraform 和 terraform init 删除它,然后计划多次,但它不会消失 我还尝试更新我的 terraform cli 版本,(我使用的是 Windows,我使用 choco install terraform 并卸载)

│ Error: Required plugins are not installed │ │ The installed provider plugins are not consistent with the packages selected in the dependency lock file: │   - registry.terraform.io/hashicorp/azurerm: the cached package for registry.terraform.io/hashicorp/azurerm 4.16.0 (in .terraform\providers) does not match any of the checksums recorded in the dependency lock file │ │ Terraform uses external plugins to integrate with a variety of different infrastructure services. To download the plugins required for this configuration,    │ run: │   terraform init 
上次我的配置稍作修改时它就起作用了,不知道错误的根本原因是什么,这让我发疯,我尝试固定版本并获取最新的版本,但我不断收到相同的错误,任何人都经历过这个2025 年会发生什么? Terraform 将其宣布为 bug @2022 并在新版本中修复。我正在使用 v1.10.4,但仍然遇到此错误。

这是我对它的成功尝试,也许当版本 >= 不是 >~ 或确切版本时!我不确定是什么原因造成的,后来当尝试添加我的客户端密钥和变量时,我得到了更接近的错误。

terraform {
  required_version = ">=1.0"

  required_providers {
    azapi = {
      source  = "azure/azapi"
      version = ">=2.0"
    }
    azurerm = {
      source  = "hashicorp/azurerm"
      version = ">=3.0"
    }
    random = {
      source  = "hashicorp/random"
      version = ">=3.0"
    }
    time = {
      source  = "hashicorp/time"
      version = ">=0.9.1"
    }
  }
}  
azure terraform
1个回答
0
投票

安装的provider插件与依赖锁文件中选择的包不一致:

当 Terraforms 依赖项锁定文件中记录的依赖项与您尝试应用的当前 terraform 配置不匹配时,就会发生上述类型的错误。

此外,尝试使用确切的版本(例如:

==version
)而不是使用版本范围(
>=
)。

terraform {
  required_version = ">=1.0"
  required_providers {
    azapi = {
      source  = "azure/azapi"
      version = "2.2.0"
    }
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "3.0"
    }
}

enter image description here

enter image description here

基本功能是一旦您运行

terraform init
,它就会生成或更新锁定文件以记录与您的配置约束相匹配的确切提供程序版本。

如果在未更新锁定文件的情况下对配置或环境进行更改,Terraform 会引发不一致错误,这可能会导致兼容性并防止潜在的错误配置。

解决此问题的一种方法是删除

terraform.lock.hcl
文件并重新运行
terraform init
来重新生成它。

命令:

rm terraform.lock.hcl

请参阅解决依赖性锁定问题以获取更多相关信息。

或者,您可以重新初始化 Terraform 以重新下载提供程序二进制文件并创建新的锁定文件。

-reconfigure
选项会忽略任何现有配置,从而防止迁移任何现有状态。

terraform init -reconfigure

enter image description here

相同参考: Hashicorp Terraform

© www.soinside.com 2019 - 2024. All rights reserved.