Terraform:如何安装提供商插件的多个版本?

时间:2020-05-10 05:43:29

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

我正在尝试通过带有azurerm提供程序的Terraform 0.12部署Azure资源。 我有AKS模块,可与Azurerm 2.5.0版正常工作,但与2.9.0兼容。 另一方面,Postgresql模块适用于2.9.0版,但适用于2.5.0版 我想通过一个地形应用程序来部署这两种资源。

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

  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 provider”。

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

错误:没有合适的版本

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

1 个答案:

答案 0 :(得分:0)

将代码分成“模块”,然后在模块中添加提供程序部分,然后在main.tf文件中以不同的方式调用模块。

示例

模块/ AKS

provider {
}

模块/数据库

provider {
}

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

main.tf

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

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