0Pricing
Terraform Infrastructure as Code · Lección

Creación de módulos reutilizables

Aprenda a crear sus propios módulos de Terraform, definiendo entradas, salidas y recursos para construir configuraciones modulares y flexibles.

Creación de módulos reutilizables es una lección gratuita de Terraform Infrastructure as Code en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Terraform Infrastructure as Code, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Terraform Infrastructure as Code incluye 4 lecciones en total.

Cree sus propios módulos de Terraform

En la lección anterior, aprendimos a utilizar módulos de Terraform existentes. Ahora, ¡profundicemos en la creación de sus propios módulos reutilizables!

Crear módulos le ayuda a encapsular patrones de infraestructura comunes, lo que hace que sus configuraciones sean más limpias, coherentes y fáciles de mantener.

Organización de los archivos del módulo

Un módulo de Terraform es, esencialmente, una colección de archivos .tf almacenados en un directorio específico.

En su forma más sencilla, el directorio de un módulo contiene:

  • variables.tf: Define las variables de entrada del módulo.
  • main.tf: Contiene las declaraciones de recursos.
  • outputs.tf: Define los valores de salida del módulo.

También puede incluir versions.tf para los requisitos del proveedor y README.md para la documentación.

Entradas del módulo: variables

Para hacer flexible su módulo, definirá variables de entrada. Estas permiten a los usuarios del módulo personalizar su comportamiento sin modificar el código principal del módulo.

Las variables se definen mediante un bloque variable, en el que se especifican una description, un type y, opcionalmente, un valor default.

Ejemplo: definición de una variable del módulo

Así podría definir una variable para el tipo de instancia en el archivo variables.tf de su módulo:

# variables.tf
variable "instance_type" {
  description = "The EC2 instance type to use."
  type        = string
  default     = "t2.micro"
}

Recursos del módulo: la lógica principal

El núcleo de su módulo se encuentra en sus declaraciones de recursos. Estos son los recursos reales de la nube que el módulo aprovisionará.

Colocará estos bloques de recursos, como una instancia de AWS EC2 o un bucket de S3, en el archivo main.tf de su módulo.

Es importante señalar que los recursos del módulo suelen utilizar las variables de entrada que ha definido.

Declaración de recursos mediante entradas

Declaremos una instancia de EC2 en main.tf utilizando nuestra variable instance_type:

# main.tf
resource "aws_instance" "web_server" {
  ami           = "ami-0abcdef1234567890" # Example AMI ID
  instance_type = var.instance_type
  tags = {
    Name = "MyWebServer"
  }
}

Salidas del módulo: compartir información

Al igual que los módulos reciben entradas, también pueden proporcionar valores de salida. Estos resultan útiles para exportar información sobre los recursos creados por el módulo.

Por ejemplo, podría querer mostrar la dirección IP pública de una instancia de EC2 o el ARN de un bucket de S3.

Las salidas se definen en outputs.tf mediante un bloque output.

Definir un valor de salida de un módulo

Así se define una salida para la IP pública de nuestra instancia de EC2 en outputs.tf:

# outputs.tf
output "instance_public_ip" {
  description = "The public IP address of the EC2 instance."
  value       = aws_instance.web_server.public_ip
}

Llamar al nuevo módulo

Una vez definido el módulo, puede utilizarlo en una configuración raíz (o en otro módulo), igual que cualquier otro módulo.

Debe especificar el source (la ruta al directorio del módulo) y pasar valores a sus variables de entrada.

# root_config/main.tf
module "my_web_server_module" {
  source        = "../my-ec2-module" # Path to your module
  instance_type = "t3.small"         # Override default
}

output "web_server_ip" {
  value = module.my_web_server_module.instance_public_ip
}

Comprobación de los componentes de un módulo

Ha aprendido cuáles son los archivos clave de un módulo de Terraform. ¿Qué archivo se utiliza principalmente para definir los valores que se pueden pasar al módulo?

Repaso: crear módulos reutilizables

¡Excelente trabajo! Ahora sabe cómo crear sus propios módulos de Terraform.

  • Los módulos son directorios que contienen archivos .tf.
  • Utilice variables.tf para las entradas.
  • Coloque las definiciones de recursos en main.tf.
  • Defina las salidas en outputs.tf para exponer datos.

Esta habilidad es fundamental para crear una infraestructura como código escalable, fácil de mantener y coherente.

Preguntas frecuentes

¿La lección «Creación de módulos reutilizables» es gratis?

Sí — el texto completo de «Creación de módulos reutilizables» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Terraform Infrastructure as Code, actualiza a CoddyKit PRO. El curso de Terraform Infrastructure as Code incluye 4 lecciones en total.

¿Qué aprenderé en «Creación de módulos reutilizables»?

Aprenda a crear sus propios módulos de Terraform, definiendo entradas, salidas y recursos para construir configuraciones modulares y flexibles. Practicas Terraform Infrastructure as Code con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Terraform Infrastructure as Code?

No se requiere experiencia previa. Terraform Infrastructure as Code en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Creación de módulos reutilizables»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Terraform Infrastructure as Code?

Sí. Cada lección de Terraform Infrastructure as Code incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Introducción a los módulos de Terraform
  2. Creación de módulos reutilizables
  3. Uso de espacios de trabajo para entornos
  4. Publicación de módulos en un registro
← Volver a Terraform Infrastructure as Code