- 1

Despliegue de Infraestructura en la Nube con Terraform
01:56 - 2

Infraestructura como Código: Implementación con Terraform en Azure
02:28 - 3

Curso Completo de Terraform: Infraestructura como Código
02:10 - 4

Instalación de Terraform en Ubuntu usando WSL en Windows
04:29 - 5

Configuración de Cuenta Azure y Preparación para Terraform
04:30 - 6

Instalación y Configuración de la Línea de Comandos de Azure en Ubuntu
05:37 - 7

Prueba Inicial de Terraform con Docker y Visual Studio Code
06:03
Creación de Módulos en Terraform para Gestión de Infraestructura
Clase 25 de 37 • Curso de Terraform
Contenido del curso
- 8

Configuración de Proveedores en Terraform para Nube Híbrida
03:54 - 9

Creación de Grupos de Recursos en Azure con Terraform
05:27 - 10

Uso del comando Terraform Plan para validar configuraciones
05:56 - 11

Automatización de Despliegue con Terraform: Init, Plan y Apply
04:51 - 12

Uso de Terraform Destroy para Gestión de Recursos en Azure
04:07 - 13

Recapitulación de Comandos Básicos en Terraform
04:18
- 14

Automatización de Variables en Terraform para Despliegue en Azure
09:38 - 15

Gestión de Outputs en Terraform para Recursos Desplegados
06:16 - 16

Creación de Cuentas de Almacenamiento en Azure con Terraform
12:45 - 17

Organización y Uso de Proveedores en Terraform para Azure
09:45 - 18

Gestión del Estado en Terraform y Buenas Prácticas de Seguridad
07:47 - 19

Configuración de Estado Remoto en Terraform con Azure
06:46 - 20

Configuración de Backend Remoto con Terraform y Azure
05:37
- 25

Creación de Módulos en Terraform para Gestión de Infraestructura
12:23 - 26

Comunicación entre Módulos en Terraform para Desplegar Máquinas Virtuales
11:41 - 27

Uso del bloque Locals en Terraform para gestionar prefijos
07:38 - 28

Importación de Recursos en Terraform: Uso del Comando Import
10:09 - 29

Diferencias entre bloques Data e Import en Terraform
03:59 - 30

Exploración y Uso del Terraform Registry para Módulos en la Nube
05:18 - 31

Crear y Publicar Módulo Terraform en GitHub para Azure Functions
05:00 - 32

Documentación y Preparación de Repositorios con Git y Terraform
07:43 - 33

Publicación de Módulos en Terraform y Pruebas en Azure
09:25
¿Cómo manejar scripts de Terraform extensos con módulos?
Desplegar una arquitectura completa con Terraform puede resultar en scripts masivos de miles de líneas de código. ¿La solución? Fragmentar el script en módulos, al igual que utilizamos clases en programación para organizar el código de manera estructurada.
¿Cómo se organiza un script en módulos?
Lo primero que debes establecer es una carpeta específica para los módulos dentro de tu entorno de trabajo, como VS Code. Aquí está cómo puedes hacerlo:
-
Crear carpetas para cada componente: Por ejemplo, puedes organizar tus componentes en carpetas como
VNetpara la red virtual,NSGpara el grupo de seguridad de red, yVMpara la máquina virtual. -
Establecer archivos principales: En cada carpeta de módulo, necesitarás tres archivos fundamentales:
main.tf: este archivo contendrá el código específico del módulo.variables.tf: donde definirás las variables que el módulo necesita.output.tf: para especificar qué datos se exportarán de este módulo.
¿Cómo se trasladan recursos a un módulo?
El contenido original del script principal se traslada a estos archivos modulares. Por ejemplo:
resource "azurerm_virtual_network" "example" {
name = "example-network"
# Otros parámetros aquí...
}
Este bloque de código se trasladaría al main.tf dentro de la carpeta VNet.
¿Qué se debe considerar al trabajar con variables en módulos?
Al trasladar recursos a módulos separados, es importante redefinir las variables en cada módulo específico. Así puedes mantener la independencia de cada pieza del código:
- Variables deben ser definidas claramente en
variables.tf. - Dentro de
main.tfde cada módulo, utiliza estas variables para referenciar atributos necesarios.
Por ejemplo, si un recurso requiere la ubicación, se definiría como:
variable "location" {
description = "La ubicación del recurso"
type = string
}
¿Cómo asegurar que los módulos funcionen conjuntamente?
Una vez que todos los componentes estén definidos en sus respectivos módulos, es crucial enlazar las variables adecuadamente al script principal de Terraform. Esto significa asegurarte de que cada módulo pueda comunicarse con los demás mediante variables de entrada y salida bien configuradas.
-
Exportar datos desde módulos: Utiliza el
output.tfpara especificar qué información debe estar disponible para otros módulos o el script principal. -
Definir dependencias claramente: Asegúrate de que las variables y outputs se pasen entre módulos según lo necesites, asegurando que los recursos como subredes, IPs públicas, y grupos de seguridad estén correctamente referidos y accesibles donde se requiera.
Beneficios de usar módulos en Terraform
El esfuerzo de fragmentar y modular los scripts ofrece numerosas ventajas:
- Escalabilidad: Manejar y escalar proyectos se vuelve más sencillo con un código más organizado y fragmentado.
- Reutilización: Módulos bien diseñados pueden ser reutilizados en diferentes proyectos.
- Mantenibilidad: Actualizaciones y mantenimiento se realizan con mayor facilidad evitando confusiones en extensos scripts.
Adoptar esta práctica en tus proyectos de Terraform te guiará al desarrollo más eficiente y a un despliegue más ágil de infraestructuras complejas.