Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

183
Vistas
Migración de estado remoto a backend en Terraform 0.9

Descargué terraform 0.9 e intenté seguir la guía de migración para pasar del remote-state al backend

Pero no parece funcionar. Reemplacé:

 data "terraform_remote_state" "state" { backend = "s3" config { bucket = "terraform-state-${var.environment}" key = "network/terraform.tfstate" region = "${var.aws_region}" } }

con

 terraform { backend "s3" { bucket = "terraform-backend" key = "network/terraform.tfstate" region = "us-west-2" } }

sin embargo, cuando ejecuto terraform init en una de mis carpetas de entorno, obtengo:

Advertencia de obsolescencia: este entorno está configurado para usar el estado remoto heredado. El estado remoto cambió significativamente en Terraform 0.9. Actualice su configuración de estado remoto para usar la nueva configuración de 'backend'. Por ahora, Terraform continuará usando su configuración actual. El soporte de estado remoto heredado se eliminará en Terraform 0.11.

Puede encontrar una guía para actualizar aquí:

https://www.terraform.io/docs/backends/legacy-0-8.html

También tuve que eliminar la interpolación de variables ya que esto ya no está permitido. ¿Significa eso que un S3 Bucket se usa para múltiples entornos? ¿Qué me he perdido aquí?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Según la guía de actualización ( https://www.terraform.io/docs/backends/legacy-0-8.html ) después de terraform init , también debe ejecutar el terraform plan para finalizar la migración, que actualizará el archivo de estado remoto en s3 .

En cuanto a la configuración para múltiples entornos, terminamos usando una secuencia de comandos de shell contenedor con el paso de parámetros para ${application_name}/${env}/${project} y usando una configuración parcial.

Para una estructura de proyecto como esta:

 ├── projects │  └── application-name │  ├── dev │  │  ├── bastion │  │  ├── db │  │  ├── vpc │  │  └── web-cluster │  ├── prod │  │  ├── bastion │  │  ├── db │  │  ├── vpc │  │  └── web-cluster │  └── backend.config └── run-tf.sh

para cada application_name/env/component = carpeta (es decir, dev/vpc) agregamos un archivo de configuración de back-end de marcador de posición como este: backend.tf :

 terraform { backend "s3" { } }

Donde el contenido de la carpeta para cada componente se verá así:

 │  ├── prod │  │  ├── vpc │  │  │  ├── backend.tf │  │  │  ├── main.tf │  │  │  ├── outputs.tf │  │  │  └── variables.tf

En el nivel "application_name/" o "application_name/env" agregamos un archivo backend.config, como este:

 bucket = "BUCKET_NAME" region = "region_name" lock = true lock_table = "lock_table_name" encrypt = true

Nuestro script de shell contenedor espera que se ejecuten los parámetros application-name , environment , component y el terraform cmd real.

El contenido del script run-tf.sh (simplificado):

 #!/bin/bash application=$1 envir=$2 component=$3 cmd=$4 tf_backend_config="root_path/$application/$envir/$component/backend.config" terraform init -backend=true -backend-config="$tf_backend_config" -backend-config="key=tfstate/${application}/${envir}/${component}.json" terraform get terraform $cmd

Así es como se ve una invocación típica de run-tf.sh:

 $ run-tf.sh application_name dev vpc plan $ run-tf.sh application_name prod bastion apply
about 4 years ago · Santiago Trujillo Denunciar

0

Te confundiste con el comando remoto terraform con el estado remoto. No tiene que cambiar ninguna cosa de estado remoto que tenga en sus archivos tf.

En lugar de configurar su estado remoto con el comando remoto terraform y use el archivo de configuración de back-end mencionado en el enlace de migración.

Vea el segundo comentario de github en este enlace. Tiene un buen procedimiento paso a paso sobre lo que hizo para migrar. https://github.com/hashicorp/terraform/issues/12792

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda