我正在尝试通过带有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
答案 0 :(得分:0)
将代码分成“模块”,然后在模块中添加提供程序部分,然后在main.tf文件中以不同的方式调用模块。
示例
模块/ AKS
provider {
}
模块/数据库
provider {
}
现在以不同的方式调用模块
main.tf
module "AKS" {
source = "../modules/AKS"
}
module "DB" {
source = "../modules/DB"
}