Использовать переменную в удаленном бэкэнде Terraform - PullRequest
1 голос
/ 01 июля 2019
# Using a single workspace:
terraform {
  backend "remote" {
    hostname = "app.terraform.io"
    organization = "company"

    workspaces {
      name = "my-app-prod"
    }
  }
}

Для удаленного бэкэнда Terraform есть ли способ использовать переменную для указания имени организации / рабочего пространства вместо жестко заданных значений там?

Документация Terraform didn 'Кажется, ничего не упоминается.

1 Ответ

2 голосов
/ 01 июля 2019

Документация по настройке бэкэнда подробно расскажет об этом. Главное, на что нужно обратить внимание, это:

Может быть указан только один бэкэнд, и конфигурация может не содержать интерполяции . Terraform подтвердит это.

Если вы хотите сделать это легко конфигурируемым, тогда вы можете использовать частичную конфигурацию для статических частей (например, тип бэкенда, такой как S3), а затем предоставлять конфигурацию во время выполнения в интерактивном режиме, через переменные среды или через флаги командной строки.

Я лично обертываю действия Terraform в небольшой сценарий оболочки, который запускает terraform init с флагами командной строки, в которых используется соответствующий сегмент S3 (например, другой для каждого проекта и учетной записи AWS), и убедитесь, что местоположение файла состояния совпадает с путем в каталог, над которым я работаю.

...