2

我正在尝试使用 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

4

1 回答 1

0

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

例子

模块/AKS

provider {
}

模块/数据库

provider {
}

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

主文件

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

module "DB" {
  source = "../modules/DB"
}
于 2020-05-10T07:46:45.857 回答