DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
World desk6 min

Terraform: cómo declarar infraestructura como código con HCL

Terraform declara infraestructura mediante archivos HCL. Aprende a leer recursos y proveedores, revisar un plan y proteger el estado y los secretos.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Terraform usa archivos de configuración declarativos para describir la infraestructura que administra. HCL es la sintaxis nativa de esos archivos: permite definir recursos, proveedores, variables y módulos; después, los comandos terraform init, terraform plan y terraform apply preparan dependencias, muestran cambios propuestos y los ejecutan con aprobación normal. La revisión del plan es esencial: aplicar una configuración puede modificar o destruir infraestructura real.

Qué son Terraform y HCL

Terraform es una herramienta de infraestructura como código: describes el resultado que quieres administrar y Terraform determina las acciones necesarias para aproximar la infraestructura real a esa configuración. No es, principalmente, un guion de instrucciones de shell que se ejecutan una por una. Su lenguaje está orientado a declarar recursos; así lo resume HashiCorp en su documentación del lenguaje.

As an Amazon Associate I earn from qualifying purchases.

HCL, el HashiCorp Configuration Language, es la sintaxis nativa que se suele escribir en archivos .tf. Terraform también acepta JSON, pero el formato HCL está pensado para que las configuraciones sean más legibles y editables por personas. La referencia de sintaxis explica sus bloques, argumentos y expresiones.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

La idea práctica es mantener una descripción que se pueda revisar, versionar y compartir. Terraform compara esa configuración con su estado y con la información que obtiene de los proveedores para proponer operaciones. El código no vuelve inocuo un cambio: un plan puede incluir la creación, modificación, reemplazo o eliminación de objetos.

Cómo leer la sintaxis de HCL

Un bloque empieza con un tipo, puede incluir etiquetas y contiene argumentos asignados con =. Las expresiones permiten combinar valores y referenciar otros elementos de la configuración.

  • terraform: define requisitos generales, incluidos los proveedores requeridos.
  • provider: configura la conexión con una plataforma o servicio.
  • resource: declara un objeto que Terraform crea o administra.
  • variable: define un parámetro de entrada.
  • output: expone un valor calculado para quien usa la configuración o un módulo.
  • module: incorpora una configuración reutilizable.

En una declaración resource, el primer valor es el tipo de recurso definido por el proveedor y el segundo es un nombre local que sirve para referirse a él dentro de la configuración. Una referencia a otro recurso normalmente crea una dependencia implícita: Terraform puede deducir el orden de las operaciones y, cuando es posible, ejecutar operaciones independientes en paralelo.

Un ejemplo mínimo de configuración

terraform {
  required_providers {
    example = {
      source  = "hashicorp/example"
      version = "~> 1.0"
    }
  }
}

provider "example" {}

resource "example_object" "demo" {
  name = "demo"
}

example y example_object son marcadores didácticos: no asumas que existe un proveedor utilizable con ese nombre. En una configuración real, sustituye el marcador por un proveedor concreto y consulta su documentación. El proveedor define qué tipos de recursos ofrece y qué argumentos admite cada tipo; los argumentos de AWS, Azure, Google Cloud u otros sistemas no son intercambiables ni universales. La documentación de recursos explica las declaraciones de Terraform, y la referencia de proveedores describe esa integración.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

El bloque required_providers identifica el origen del complemento y permite restringir versiones aceptables. En un entorno compartido o de producción, establece restricciones deliberadas y revisa el archivo de bloqueo de dependencias generado por Terraform para que el equipo use selecciones de proveedores coherentes.

El flujo seguro: init, plan y apply

Ejecuta los comandos desde el directorio de trabajo correcto. El directorio y el workspace seleccionados importan: determinan qué configuración y contexto de estado se utilizan.

  1. terraform init: inicializa el directorio y descarga los proveedores y módulos requeridos por la configuración. Consulta el flujo de trabajo del CLI para el contexto de los comandos.
  2. terraform plan: consulta el estado y los proveedores y presenta las acciones que Terraform propone, sin aplicar cambios a los objetos reales. Lee el plan antes de continuar. Comprueba con especial atención cualquier destrucción o reemplazo, además de cambios de cuenta o región.
  3. terraform apply: ejecuta las acciones aprobadas. En el uso normal solicita confirmación. Si no le pasas un plan guardado, vuelve a planificar antes de aplicar; revisa la referencia de apply para los detalles de uso.

Un plan no es una garantía permanente de que el entorno seguirá igual: la infraestructura externa o el estado pueden cambiar entre la planificación y la aplicación. Para empezar, no uses -auto-approve; conserva la oportunidad de inspeccionar el plan y confirmar que corresponde al entorno esperado.

Variables y módulos: parametrizar y reutilizar

Variables de entrada

Las variables hacen parametrizable una configuración o módulo. Una declaración inicial suele beneficiarse de un tipo y una descripción; añade un valor default solo cuando el valor predeterminado tenga sentido. Usa validación cuando exista una restricción propia importante que convenga comprobar. No conviertas automáticamente cada literal en una variable: exponer demasiados controles puede hacer menos clara la configuración.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Módulos

Un módulo agrupa configuración reutilizable. Un bloque module especifica un source, puede declarar version cuando se usa un módulo del registro y puede pasar entradas al módulo hijo. El hijo puede declarar salidas que el módulo padre consuma. Las fuentes admitidas incluyen registros, repositorios Git y otros orígenes; consulta la configuración de módulos antes de elegir y fijar un origen. terraform init instala los módulos requeridos.

Proveedor y módulo cumplen funciones distintas

Elemento Función Qué aporta
Proveedor Conecta Terraform con una plataforma, servicio o API. Define los tipos de recursos y datos disponibles, además de sus argumentos.
Módulo Empaqueta configuración para reutilizarla. Agrupa recursos y expone entradas y salidas para integrarse con otras configuraciones.

Un módulo puede usar recursos de uno o más proveedores; no reemplaza al proveedor que permite a Terraform comunicarse con la plataforma.

HCL nativo frente a JSON

Formato Cuándo resulta práctico Consideración
HCL Escribir y revisar configuraciones a mano. Es el formato nativo de Terraform y está orientado a la lectura humana.
JSON Generar configuraciones o procesarlas mediante programas. Terraform lo admite, aunque no es el formato nativo pensado para edición manual cotidiana.

No hace falta elegir un formato por una regla universal: considera si las personas editarán la configuración directamente o si la producirá una herramienta.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Protege secretos, planes y archivos de estado

Marcar una variable como sensitive ayuda a ocultar su valor en ciertas salidas, pero por sí solo no cifra el secreto ni evita que Terraform lo guarde en el estado o en un plan. Por eso, no pongas credenciales en HCL compartido y trata como sensibles tanto el archivo de estado como los planes guardados. En una configuración local, restringe permisos y excluye esos archivos del control de versiones.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Los argumentos ephemeral pueden excluir ciertos valores de los planes y del estado, pero su disponibilidad depende de la versión y del contexto permitido. Según la documentación de gestión de datos sensibles consultada el 5 de octubre de 2026, las variables y salidas de módulos hijo admiten argumentos ephemeral desde Terraform 1.10; los argumentos write-only en recursos gestionados requieren Terraform 1.11 o posterior. Cada proveedor determina cuáles de sus argumentos admiten escritura sin lectura. No trates sensitive y ephemeral como controles equivalentes.

Si usas estado remoto, verifica por separado el cifrado, la protección del transporte, los permisos de acceso, el bloqueo y el comportamiento del backend elegido. Esas garantías dependen de la implementación y la configuración; no se deben atribuir a todos los backends por igual.

Qué comprobar antes de usar una configuración real

  • Confirma qué cuenta, región, workspace y directorio están seleccionados.
  • Verifica el origen y las restricciones de versión del proveedor; revisa el archivo de bloqueo de dependencias.
  • Consulta el esquema actual del proveedor para validar los tipos de recurso y sus argumentos.
  • Lee el plan y detente si no entiendes una eliminación, un reemplazo o un cambio de destino.
  • Protege el estado, los planes guardados y cualquier valor sensible con controles adecuados al backend.

Las versiones del CLI, los proveedores y las funciones de manejo de datos sensibles cambian. Las referencias enlazadas describen la documentación oficial consultada el 5 de octubre de 2026; antes de aplicar instrucciones a un entorno concreto, comprueba que los argumentos corresponden a la versión de Terraform y al proveedor que usas.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.