Состояния рабочей области Terraform в разных сегментах s3? - PullRequest
0 голосов
/ 27 ноября 2018

Я использую terraform для предоставления ресурсов в средах разработки и разработки.Эти среды живут на двух разных аккаунтах aws.У меня было мое состояние локально, но я хочу перенести его на s3 сейчас.Проблема в том, что terraform хранит состояние для def и prod envs в одном и том же сегменте s3. Можно ли их разделить?Если нет, то какие есть альтернативные решения, не разбивая мою кодовую базу terraform?

1 Ответ

0 голосов
/ 12 декабря 2018

У меня есть оболочка bash вокруг terraform и я создаю файл состояния для каждой учетной записи для разделения интересов.Я также разбил автоматизацию на множество компонентов, чтобы сохранить малое состояние, чтобы производительность не пострадала, и загружая и выгружая состояние в корзину:

function set_backend () {
    local STATE_PATH=$1
    if [[ $BACKEND == "s3" ]]; then
        cat << EOF > ./backend.tf
terraform {
  backend "s3" {
    bucket = "${TF_VAR_state_bucket}"
    dynamodb_table = "${DYNAMODB_STATE_TABLE}"
    key    = "terraform/$STATE_PATH/terraform.tfstate"
    region = "$REGION"
    encrypt = "true"
  }
}
provider "aws" {
  region  = "$REGION"
  version = "1.51.0"
}
provider "aws" {
  region  = "$DR_REGION"
  version = "1.51.0"
  alias = "dr"
}
provider "archive" { version = "1.1.0" }
provider "external" { version = "1.0.0" }
provider "local" { version = "1.1.0" }
provider "null" { version = "1.0.0" }
provider "random" { version = "2.0.0" }
provider "template" { version = "1.0.0" }
provider "tls" { version = "1.2.0" }
EOF
    fi
}
...