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 DevOps Bootcamp 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 DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp 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.tfpara las entradas. - Coloque las definiciones de recursos en
main.tf. - Defina las salidas en
outputs.tfpara 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 DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp 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 DevOps Bootcamp 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 DevOps Bootcamp?
No se requiere experiencia previa. DevOps Bootcamp 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 DevOps Bootcamp?
Sí. Cada lección de DevOps Bootcamp 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
- Introducción a los módulos de Terraform
- Creación de módulos reutilizables
- Uso de espacios de trabajo para entornos
- Publicación de módulos en un registro