Terraform - 部署到多个 Azure 订阅
Terrafrom - Deploy to multiple azure subscriptions
我一直在尝试使用相同的 Terraform 堆栈在多个 Azure 订阅中部署资源。还需要在不同订阅中的这些资源之间传递参数。我曾尝试使用多个提供商,但不支持。
Error: provider.azurerm: multiple configurations present; only one configuration is allowed per provider
如果您有实现此目的的方法或想法,请告诉我。
您可以使用 alias
(doku) 来使用多个提供程序。
# The default provider configuration
provider "azurerm" {
subscription_id = "xxxxxxxxxx"
}
# Additional provider configuration for west coast region
provider "azurerm" {
alias = "y"
subscription_id = "yyyyyyyyyyy"
}
然后在您想要使用替代提供商时指定:
resource "azurerm_resource_group" "network_x" {
name = "production"
location = "West US"
}
resource "azurerm_resource_group" "network_y" {
provider = "azurerm.y"
name = "production"
location = "West US"
}
Markus 的回答是正确的,但它是正确的解决方案如果您需要在同一组 Terraform 源中访问多个订阅。
如果您的目的是将一个订阅用作沙盒,将另一个订阅用作真实订阅,您应该简单地将提供商信息移出 Terraform 脚本。管理此问题的方法不止一种:
- Workspaces
- Backend configuration
- Terragrunt 风格 bash/Powershell/python 的包装脚本
- 符号链接也可用于共享多个文件夹中的文件
我结合使用最后三个,因为工作空间对我们的需求来说太死板了。
作为 Terraform 初学者,我出于愚蠢的原因得到了这个错误代码,也许这里有人有同样的问题:
我将 main.tf
文件的备份保存为 mymainbackup1.tf
之类的东西,Terraform 将其解释为真正的 .tf 文件,即使它不是 main.tf
,因此它认为我注册了不止一家供应商。
我将文件更改为 .txt 扩展名,Terraform 停止解释该文件并停止给出错误。
我一直在尝试使用相同的 Terraform 堆栈在多个 Azure 订阅中部署资源。还需要在不同订阅中的这些资源之间传递参数。我曾尝试使用多个提供商,但不支持。
Error: provider.azurerm: multiple configurations present; only one configuration is allowed per provider
如果您有实现此目的的方法或想法,请告诉我。
您可以使用 alias
(doku) 来使用多个提供程序。
# The default provider configuration
provider "azurerm" {
subscription_id = "xxxxxxxxxx"
}
# Additional provider configuration for west coast region
provider "azurerm" {
alias = "y"
subscription_id = "yyyyyyyyyyy"
}
然后在您想要使用替代提供商时指定:
resource "azurerm_resource_group" "network_x" {
name = "production"
location = "West US"
}
resource "azurerm_resource_group" "network_y" {
provider = "azurerm.y"
name = "production"
location = "West US"
}
Markus 的回答是正确的,但它是正确的解决方案如果您需要在同一组 Terraform 源中访问多个订阅。
如果您的目的是将一个订阅用作沙盒,将另一个订阅用作真实订阅,您应该简单地将提供商信息移出 Terraform 脚本。管理此问题的方法不止一种:
- Workspaces
- Backend configuration
- Terragrunt 风格 bash/Powershell/python 的包装脚本
- 符号链接也可用于共享多个文件夹中的文件
我结合使用最后三个,因为工作空间对我们的需求来说太死板了。
作为 Terraform 初学者,我出于愚蠢的原因得到了这个错误代码,也许这里有人有同样的问题:
我将 main.tf
文件的备份保存为 mymainbackup1.tf
之类的东西,Terraform 将其解释为真正的 .tf 文件,即使它不是 main.tf
,因此它认为我注册了不止一家供应商。
我将文件更改为 .txt 扩展名,Terraform 停止解释该文件并停止给出错误。