Importación de Recursos en Terraform: Uso del Comando Import

Clase 28 de 37Curso de Terraform

Resumen

¿Cómo integrar recursos existentes en tu script de Terraform?

Al diseñar y gestionar arquitecturas en la nube con Terraform, a menudo surge la necesidad de integrar recursos ya existentes sin tener que reconstruirlos desde cero. Este enfoque no solo ahorra tiempo y esfuerzo, sino que también optimiza y refuerza la infraestructura tecnológica de un proyecto. En este artículo, exploraremos cómo importar recursos preexistentes en tu script de Terraform y establecer un sistema eficiente de administración.

¿Por qué importar recursos en Terraform?

Podrías encontrarte con escenarios donde tienes una aplicación web que necesita integrarse con una base de datos preexistente. En tales casos, crear una nueva base de datos para transferir datos sería ineficiente. En su lugar, la importación de la base de datos existente en Terraform te permitirá:

  • Integrar fácilmente el recurso en la estructura de Terraform.
  • Gestionar de forma centralizada todos los recursos usando los scripts de Terraform.
  • Evitar la duplicación innecesaria de recursos ya configurados.

¿Cómo crear un grupo de recursos en Azure?

Antes de importar recursos a Terraform, necesitas asegurarte de que estos existan en la plataforma en la nube. Aquí está cómo puedes hacerlo en el portal de Azure:

  1. Crea un grupo de recursos:

    • Selecciona "Crear" y asigna un nombre al grupo, como "logs group".
    • Elige tu región más cercana, por ejemplo, "Brasil Sud".
    • Revisa y crea el grupo.
  2. Configura una cuenta de almacenamiento:

    • Dentro del grupo de recursos, selecciona la opción de "storage account".
    • Asigna un nombre único al recurso, por ejemplo, "Logs Storage Account 23".
    • Revisa los parámetros como redundancia, ubicación, y rendimiento, y crea la cuenta.
  3. Crea un contenedor en la cuenta de almacenamiento:

    • Ve a la sección de almacenamiento de datos, y selecciona "containers".
    • Crea un contenedor llamado "logs".

¿Cómo importar recursos en Terraform?

Una vez que tienes un recurso en Azure, el siguiente paso es importarlo en Terraform para administrarlo efectivamente. Aquí te dejamos un paso a paso para realizarlo:

  1. Configura tu script de Terraform:

    • Crea un archivo como main.tf en tu directorio de trabajo.
    • Especifica el proveedor y los parámetros básicos del recurso.
    provider "azurerm" {
      features {}
    }
    
    resource "azurerm_storage_account" "example" {
      name                     = "logsstorageaccount23"
      resource_group_name      = "logs group"
      location                 = "Brazil South"
      account_tier             = "Standard"
      account_replication_type = "LRS"
    }
    
  2. Inicializa y planea el proyecto de Terraform:

    • Ejecuta terraform init para inicializar el proyecto.
    • Usa terraform plan -out=plan.out para visualizar los cambios.
  3. Importar el recurso:

    • Si intentas aplicar el plan (terraform apply), probablemente notarás un error indicando que el recurso ya existe. Esto se debe a que el recurso necesita ser importado.

    • Usa el bloque de código de importación en tu script:

      terraform {
        required_providers {
          azurerm = {
            source  = "hashicorp/azurerm"
            version = "~> 2.0"
          }
        }
      }
      
      resource "azurerm_storage_account" "example" {}
      
      output "storage_account_id" {
        value = azurerm_storage_account.example.id
      }
      
    • Ejecuta el comando terraform import seguido de la ruta del recurso y su identificador (obtenido del mensaje de error).

  4. Revisar el archivo de estado:

    • Verifica que el recurso importado ahora está dentro del archivo de estado (terraform.tfstate).

¿Qué beneficios conlleva este proceso?

La importación de recursos ya existentes en Terraform no solo refuerza la gestión consolidada de la infraestructura, sino que también facilitan la protección, el escalado y el ajuste de parámetros directamente desde tu script de Terraform. Además, automatiza la administración de recursos de la nube, promoviendo un enfoque uniforme y eficiente que minimiza el riesgo de errores y la duplicación innecesaria de configuraciones.

En el mundo dinámico de la tecnología en la nube, procesos como este son fundamentales para optimizar recursos y mejorar la agilidad y flexibilidad de tus proyectos. ¡Sigue explorando y mejorando tus habilidades con Terraform!