Introducció

L'importació de Terraform és una funcionalitat avançada que permet importar recursos existents a la configuració de Terraform. Això és útil quan es vol gestionar recursos que ja han estat creats fora de Terraform, permetent així una gestió unificada i coherent de la infraestructura.

Conceptes Clau

  • Importació de Recursos: El procés d'incorporar recursos existents a la configuració de Terraform.
  • ID del Recurs: Identificador únic del recurs que es vol importar.
  • Bloc de Recursos: Definició del recurs dins del fitxer de configuració de Terraform.

Passos per Importar Recursos

  1. Identificar el Recurs

Abans de poder importar un recurs, cal identificar-lo correctament. Això inclou obtenir l'ID del recurs que es vol importar. Per exemple, si es vol importar una instància d'EC2 d'AWS, caldrà l'ID de la instància.

  1. Crear el Bloc de Recursos

Crear un bloc de recursos en el fitxer de configuració de Terraform que coincideixi amb el recurs que es vol importar. Aquest bloc ha de contenir el tipus de recurs i el nom del recurs.

resource "aws_instance" "example" {
  # Els atributs es completaran després de la importació
}

  1. Executar la Comanda d'Importació

Utilitzar la comanda terraform import per importar el recurs. La sintaxi general és:

terraform import [options] ADDRESS ID
  • ADDRESS: L'adreça del recurs en la configuració de Terraform (per exemple, aws_instance.example).
  • ID: L'ID del recurs que es vol importar.

Exemple:

terraform import aws_instance.example i-1234567890abcdef0

  1. Actualitzar la Configuració

Després de la importació, Terraform haurà afegit el recurs al fitxer d'estat, però el bloc de recursos en el fitxer de configuració encara estarà incomplet. Caldrà actualitzar el bloc de recursos amb els atributs necessaris.

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  # Altres atributs necessaris
}

Exemple Pràctic

Importació d'una Instància d'EC2 d'AWS

  1. Identificar el Recurs: Suposem que tenim una instància d'EC2 amb l'ID i-1234567890abcdef0.

  2. Crear el Bloc de Recursos:

resource "aws_instance" "example" {
  # Els atributs es completaran després de la importació
}
  1. Executar la Comanda d'Importació:
terraform import aws_instance.example i-1234567890abcdef0
  1. Actualitzar la Configuració:
resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  key_name      = "my-key"
  subnet_id     = "subnet-0bb1c79de3EXAMPLE"
  tags = {
    Name = "ExampleInstance"
  }
}

Errors Comuns i Solucions

Error: "Resource not found"

  • Causa: L'ID del recurs és incorrecte o el recurs no existeix.
  • Solució: Verificar l'ID del recurs i assegurar-se que el recurs existeix.

Error: "Resource already managed by Terraform"

  • Causa: El recurs ja està gestionat per Terraform.
  • Solució: Verificar l'estat de Terraform per assegurar-se que el recurs no està duplicat.

Exercici Pràctic

Exercici: Importar un Bucket de S3

  1. Identificar el Recurs: Suposem que tenim un bucket de S3 amb el nom my-example-bucket.

  2. Crear el Bloc de Recursos:

resource "aws_s3_bucket" "example" {
  # Els atributs es completaran després de la importació
}
  1. Executar la Comanda d'Importació:
terraform import aws_s3_bucket.example my-example-bucket
  1. Actualitzar la Configuració:
resource "aws_s3_bucket" "example" {
  bucket = "my-example-bucket"
  acl    = "private"
  tags = {
    Name        = "MyExampleBucket"
    Environment = "Dev"
  }
}

Conclusió

L'importació de Terraform és una eina poderosa per gestionar recursos existents amb Terraform. Seguint els passos adequats, es pot integrar fàcilment la infraestructura existent en la configuració de Terraform, permetent una gestió més eficient i coherent.


Amb això, hem cobert la funcionalitat d'importació de Terraform. En el següent tema, explorarem les millors pràctiques per organitzar el codi de Terraform.

© Copyright 2024. Tots els drets reservats