【问题标题】:Terraform: How to install multiple versions of provider plugins? [duplicate]Terraform:如何安装多个版本的提供程序插件? [复制]
【发布时间】:2020-08-25 16:41:18
【问题描述】:

我正在尝试使用 azurerm 提供程序通过 Terraform 0.12 部署 Azure 资源。 我有 AKS 模块,它适用于 azurerm 版本 2.5.0,但与 2.9.0 不同。 另一方面,Postgresql 模块适用于 2.9.0 版本,但与 2.5.0 版本不同 我想通过单个 terraform 应用部署这两种资源。

我尝试了以下配置,但在初始化阶段失败了。

  provider "azurerm" {
  version = "=2.9.0"
  }

  provider "azurerm" {
  alias = "latest"
  version = "=2.5.0"
  }

$ terraform.exe init

Initializing the backend...

Initializing provider plugins...
- Checking for available provider plugins...

No provider "azurerm" plugins meet the constraint "=2.5.0,=2.9.0".

版本约束源自 配置中的提供程序“azurerm”块。子模块也可能适用 提供者版本限制。查看每个请求的提供程序版本 在当前配置中的模块,运行“terraform providers”。

要继续,必须通过以下方式放宽此提供程序的版本限制 调整或删除提供程序块中的“版本”参数 在整个配置过程中。

错误:没有合适的版本可用

如何安装两个提供程序版本并将 AKS 模块指向 v2.5.0 并将 Postgres 模块指向 v2.9.0

【问题讨论】:

  • 当前版本的 terraform(0.12 和 0.13)无法做到这一点

标签: terraform-provider-azure terraform0.12+


【解决方案1】:

将代码分解为模块并在模块中添加提供程序部分,并在 main.tf 文件中以不同方式调用模块。

例子

模块/AKS

provider {
}

模块/数据库

provider {
}

现在以不同的方式调用您的模块

main.tf

module "AKS" {
  source = "../modules/AKS"
}

module "DB" {
  source = "../modules/DB"
}

【讨论】:

  • 用于以下配置:AKS main.tf provider "azurerm" { version = "= 2.5.0" } Postgrsql main.tf provider "azurerm" { version = "= 2.9.0" } 运行“terraform init”后仍然出现相同的错误没有提供程序“azurerm”插件满足约束“= 2.5.0 ,= 2.9.0"
猜你喜欢
  • 2021-09-24
  • 2020-08-29
  • 1970-01-01
  • 2020-05-23
  • 2021-09-11
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
  • 2021-03-29
相关资源
最近更新 更多