Terrafrom - развертывание на нескольких подписках Azure

Я пытался использовать один и тот же стек terraform для развертывания ресурсов в нескольких подписках Azure. Также необходимо передать параметры между этими ресурсами в разных подписках. Я пытался использовать несколько провайдеров, но это не поддерживается.

Error: provider.azurerm: multiple configurations present; only one configuration is allowed per provider

Если у вас есть способ или идея, как этого добиться, пожалуйста, дайте мне знать.

2 ответа

Решение

Вы можете использовать несколько провайдеров, используя alias ( доку).

# 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"
}

Ответ Маркуса правильный, но это правильное решение, если вам нужно получить доступ к нескольким подпискам в одном наборе источников Terraform.

Если ваша цель состоит в том, чтобы использовать одну подписку как "песочницу", а другую по-настоящему, вам следует просто удалить информацию о провайдере из сценариев Terraform. Есть несколько способов справиться с этим:

Я использую комбинацию последних трех, так как рабочие пространства слишком жесткие для наших нужд.

Я получил этот код ошибки по глупой причине, как новичок Terraform, возможно, у кого-то здесь есть такая же проблема:

Я сохранил резервную копию моего main.tf файл как-то вроде mymainbackup1.tf и Terraform интерпретировал его как настоящий файл.tf, хотя он и не был main.tfпоэтому он подумал, что у меня зарегистрировано более одного поставщика.

Я изменил файл на расширение.txt, и Terraform перестал интерпретировать этот файл и перестал выдавать ошибку.

Другие вопросы по тегам