Uso del Modulo Data en Terraform para Importar Recursos Existentes

Clase 21 de 37Curso de Terraform

Resumen

¿Cómo utilizar Terraform para gestionar recursos previamente creados en Azure?

En el mundo de la infraestructura como código, no trabajamos solos. Es habitual que distintos miembros de un equipo colaboren en la creación y gestión de recursos en la nube. Aquí, exploraremos cómo podemos utilizar Terraform para acceder a recursos previamente creados por otros miembros del equipo, lo que puede ser un punto crucial para facilitar el trabajo colaborativo en un entorno de TI.

¿Cómo acceder a un recurso creado en Azure?

Cuando un recurso ya ha sido creado, podemos acceder a él en Terraform utilizando un bloque de datos. Supongamos que dentro de tu equipo alguien ya ha creado un "grupo de recursos" en Azure que necesitas para desplegar tu propia infraestructura desde Terraform. Para integrarlo en tu configuración de Terraform:

  • Primero, crea el recurso en el portal de Azure, como un grupo de recursos en la ubicación deseada.
  • Dentro de tu proyecto Terraform, crea una carpeta llamada data y un archivo llamado main.tf.
  • Copia el archivo del proveedor de Azure para integrarlo y poder utilizar sus servicios.
  • Escribe un bloque data en el archivo main.tf especificando el recurso de Azure que necesitas como azurerm_resource_group.

Ejemplo de bloque data en Terraform:

data "azurerm_resource_group" "imported_rg" {
  name = "grupo-previo"
}

¿Cómo crear nuevos recursos en base a los datos importados?

Ahora que se ha importado el grupo de recursos utilizándolo como referencia, puedes crear otros recursos que dependan de este.

  • En el archivo main.tf, puedes definir una nueva cuenta de almacenamiento y vincularla al grupo de recursos importado:
resource "azurerm_storage_account" "storage" {
  name                     = "almacenamiento-previo"
  resource_group_name      = data.azurerm_resource_group.imported_rg.name
  location                 = data.azurerm_resource_group.imported_rg.location
  account_tier             = "Standard"
  account_replication_type = "LRS"
}

Con esta configuración, no es necesario recrear el grupo de recursos desde cero en Terraform. Puedes aprovechar los recursos existentes para ampliar tu infraestructura de forma eficiente y efectiva.

¿Cómo se ejecutan comandos en Terraform?

Una vez que la configuración esté lista, utiliza los siguientes comandos de Terraform para inicializar y aplicar los cambios:

  1. Cambia al directorio de trabajo donde se encuentra tu archivo main.tf:
    cd data
    
  2. Inicializa Terraform:
    terraform init
    
  3. Planifica los cambios a implementar, utilizando el parámetro out para guardar el plan de ejecución:
    terraform plan -out=plan.out
    
  4. Aplica los cambios almacenados en el plan:
    terraform apply "plan.out"
    

Una vez ejecutados estos pasos, podrás verificar desde el portal de Azure que el recurso ha sido creado satisfactoriamente sin la necesidad de recrear el grupo de recursos base.

¿Qué ventajas ofrece el uso del módulo de datos?

El uso del módulo de datos en Terraform permite un alto grado de flexibilidad y colaboración entre equipos. Con esta técnica puedes:

  • Utilizar y reutilizar recursos preexistentes sin duplicar esfuerzos.
  • Mantener una estructura más limpia y organizada en tus configuraciones de infraestructura.
  • Aprovechar los recursos administrados por otros miembros del equipo, lo que facilita el enfoque hacia otras tareas relevantes.

Además, es especialmente útil cuando se trabaja en equipos grandes o con múltiples proyectos que requieren integración ágil y efectiva de recursos.

Este método es una estrategia robusta y eficiente para gestionar y ampliar la infraestructura, fomentando la colaboración en entornos complejos. ¡No dudes en incorporarlo en tus proyectos para optimizar el trabajo en equipo y el uso de recursos!