Skip to Content

¿Qué es el plan Terraform?

Terraform, desarrollado por HashiCorp , es una herramienta de infraestructura como código (IaC) ampliamente utilizada que permite a los usuarios definir y aprovisionar la infraestructura de software utilizando un lenguaje de configuración de alto nivel. A medida que las organizaciones adoptan cada vez más infraestructuras basadas en la nube, Terraform se ha vuelto esencial para administrar y automatizar la implementación de recursos de infraestructura. Uno de los comandos principales de Terraform es el plan de terraformas, un paso fundamental en el proceso de implementación que garantiza que los cambios en la infraestructura sean seguros, predecibles y eficientes.

En este artículo, analizaremos más de cerca este comando, lo que hace y cómo interpretar su resultado para sus configuraciones Terraform.

¿Qué es el plan Terraform?

El comando del plan de terraformas es una parte vital del flujo de trabajo de Terraform que sirve como una ejecución en seco o vista previa de los cambios que Terraform realizará en su infraestructura. Compara el estado actual de su infraestructura con el estado deseado definido en sus archivos de configuración de Terraform y muestra las acciones específicas que Terraform tomará para cerrar la brecha. Esto incluye adiciones, eliminaciones y modificaciones de recursos, como la creación de nuevas máquinas virtuales, la ampliación de bases de datos existentes o la eliminación de volúmenes de almacenamiento no utilizados.

Beneficios del plan Terraform

Tener la capacidad de obtener una vista previa de los cambios que causará su código de configuración en su infraestructura es beneficioso de muchas maneras, entre ellas:

  • Transparencia: El plan Terraform proporciona una descripción general detallada de los próximos cambios, y ofrece una imagen clara de lo que se creará, modificará o eliminará en su infraestructura. Esta transparencia ayuda a minimizar los errores y garantiza que todos los involucrados en el proceso de implementación estén en la misma página.
  • Mitigación de riesgos: Al previsualizar los cambios de antemano, los usuarios pueden identificar y abordar posibles problemas antes de que interrumpan los servicios. El plan Terraform puede ayudar a descubrir conflictos de recursos (p. ej., crear una VM con un nombre duplicado), dependencias faltantes (p. ej., una base de datos que requiere un grupo de seguridad específico que no está configurado) o modificaciones no deseadas debido a errores tipográficos en los archivos de configuración.
  • Colaboración: El plan Terraform se integra a la perfección con sistemas de control de versiones como Git, lo que facilita la colaboración en equipo. Compartir el resultado del plan con los miembros del equipo permite revisar los cambios dentro del contexto de los compromisos de código, lo que promueve la transparencia y la responsabilidad antes de que se implementen los cambios.
  • Eficiencia: El plan Terraform ayuda a los usuarios a planificar y ejecutar los cambios de infraestructura de manera metódica. Analizar el plan le permite identificar posibles cuellos de botella o ineficiencias antes de aplicar los cambios.
  • Seguridad: El plan Terraform actúa como una red de seguridad al permitirle revisar y validar los cambios antes de que se apliquen a su infraestructura de producción. Esta protección ayuda a evitar modificaciones accidentales y garantiza la estabilidad y confiabilidad de su entorno en la nube.

Cómo ejecutar el plan Terraform

Para ejecutar el plan de terraform, primero asegúrese de tener Terraform instalado en su máquina local. Puede descargar e instalar la versión adecuada desde el sitio web oficial de HashiCorp.

Antes de ejecutar el comando de plan, deberá crear un archivo básico de configuración de Terraform llamado main.tf en su directorio de trabajo. A continuación, se muestra un ejemplo de una configuración simple que crea un recurso de máquina virtual en un proveedor de nube:

# Configure the cloud provider (replace with your provider details)
 provider "aws" {
   region = "us-east-1"
 }
 
 # Define a virtual machine resource
 resource "aws_instance" "my_vm" {
   ami           = "ami-0f78f7e824d9499e0"  # Replace with the desired AMI ID
   instance_type = "t2.micro"
 }

1. Inicialice el directorio Terraform

Vaya a su directorio de trabajo que contiene el archivo main.tf y ejecute el siguiente comando en su terminal:

$ terraform init

Este comando inicializa el directorio de Terraform, descarga los complementos o módulos requeridos mencionados en su configuración y prepara el entorno para trabajar con Terraform.

2. Ejecute el plan Terraform

Una vez completada la inicialización, ejecute el siguiente comando para generar el plan de ejecución:

$ terraform plan

Este comando analiza la configuración de Terraform y la compara con el estado actual de su infraestructura (si corresponde). Luego, muestra un plan detallado que describe las acciones que Terraform realizará para lograr el estado deseado definido en su configuración. Por lo general, el plan mostrará los recursos que se crearán, modificarán o eliminarán.

3. Guarde el resultado del plan

Si desea guardar el plan para referencia futura o compartirlo con los miembros del equipo, puede usar opcionalmente el indicador de salida con el comando del plan. Por ejemplo, el siguiente comando guarda el plan en un archivo llamado plan.tfplan :

$ terraform plan -out=plan.tfplan

El comando del plan de terraformes solo previsualiza los cambios. No hace ninguna modificación a su infraestructura. Después de revisar y aprobar el plan, puede usar el comando de aplicación de terraformes de $ para ejecutar los cambios planificados.

Comprender y analizar la salida del plan Terraform

El resultado del plan de terraforma generalmente se divide en varias secciones, cada una de las cuales ofrece información valiosa sobre las acciones planificadas:

Acciones de recursos

Esta sección enumera las acciones específicas que Terraform pretende realizar en sus recursos de infraestructura. Estas acciones se categorizan en tres tipos principales:

  • Crear (+): Este símbolo indica que Terraform creará nuevos recursos según su configuración.
  • Lea (~): Este símbolo significa que Terraform leerá el estado de los recursos existentes para determinar si es necesario realizar algún cambio. Este símbolo es menos frecuente en el resultado del plan, ya que Terraform generalmente determina las acciones necesarias durante la fase de planificación.
  • Eliminar (-): Este símbolo indica que Terraform eliminará los recursos existentes que ya no están definidos en su configuración.

Detalles del recurso

Esta sección proporciona información detallada sobre cada recurso que se verá afectado por el plan. Aquí encontrará un desglose de los detalles que generalmente puede encontrar:

  • Tipo de recurso: Esto especifica el tipo de recurso de infraestructura que administra Terraform (p. ej., aws_instance, azurerm_resource_group).
  • Nombre del recurso: Esto identifica el nombre único asignado al recurso dentro de su configuración Terraform.

Cambios planificados

Esta sección detalla los cambios específicos que se aplicarán al recurso. Para los recursos que se están creando (indicados con +), enumerará los atributos y sus valores correspondientes que se definirán. Para los recursos que se están modificando, mostrará los cambios en los atributos existentes.

Resumen

El resultado del plan suele concluir con una sección de resumen que proporciona una descripción general de alto nivel de las acciones planificadas. Este resumen generalmente desglosa la cantidad total de recursos en las siguientes categorías:

  • Para agregar: La cantidad de recursos nuevos que se crearán

  • Para cambiar: La cantidad de recursos existentes que se modificarán

  • Para ser destruido: La cantidad de recursos existentes que se eliminarán

Cuando ejecute un plan de terraforma con la configuración de muestra que creamos anteriormente, obtendrá resultados similares a los siguientes:

# $ terraform plan
 
 Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
   + create
 
 Terraform will perform the following actions:
 
   # aws_instance.my_vm will be created
   resource "aws_instance" "my_vm" {
     + ami           = "ami-0f78f7e824d9499e0"
     + instance_type = "t2.micro"
     + tags = {
       + Name = "sample-tag"
     }
   }

1. Acciones de recursos: La primera línea indica que Terraform realizará acciones de creación (+) durante este plan.

2. Detalles del recurso: La siguiente sección profundiza en los detalles de un único recurso, aws_instance.my_vm . Esto significa que Terraform creará una nueva instancia AWS EC2 llamada my_vm en su entorno AWS. Los detalles especifican además la ID de AMI (ami-0f78f7e824d9499e0), el tipo de instancia (t2.micro ) y una etiqueta (Nombre = "etiqueta de muestra") que Terraform aplicará a la nueva instancia.

3. Resumen (implícito): Aunque no se muestra explícitamente en este ejemplo, se puede mostrar un resumen al final de un resultado de plan más complejo, que indica la cantidad total de recursos que se crearán.

Mejores prácticas para usar el plan Terraform

El comando del plan de terraformes es su red de seguridad antes de aplicar cambios de infraestructura. Las siguientes son algunas prácticas esenciales para maximizar sus beneficios:

Analice los cambios en los recursos:

  • Enfóquese en los recursos marcados para la creación (+) o eliminación (-).
  • Verifique que los valores de los atributos de los nuevos recursos se alineen con su intención (p. ej., ID de AMI, tamaño de almacenamiento).
  • Vuelva a verificar la precisión de las modificaciones a los recursos existentes.

Detecte posibles problemas:

  • Busque conflictos de recursos (p. ej., nombres duplicados, dependencias faltantes).
  • Asegúrese de que se definan todas las dependencias requeridas (p. ej., grupos de seguridad).
  • Tenga cuidado con las eliminaciones inesperadas de recursos que podrían interrumpir los servicios.

Cómo aprovechar la salida:

  • Valide si los cambios planificados coinciden con sus objetivos de infraestructura.
  • Considere las posibles implicaciones de costos asociadas con las modificaciones de recursos. También puede compartir el resultado del plan para la revisión y comunicación del equipo.

Conclusiones

El plan Terraform es una herramienta poderosa en el flujo de trabajo de Terraform. Ofrece un método seguro y transparente para obtener una vista previa y validar los cambios en la infraestructura antes de aplicarlos. Al comprender y usar de manera efectiva el plan Terraform, puede asegurarse de que sus implementaciones sean eficientes, predecibles y estén libres de consecuencias no deseadas.

Pure Storage ofrece las mejores soluciones de almacenamiento en bloque persistentes para sus implementaciones de Terraform. Portworx® proporciona una plataforma de datos integral para todas sus cargas de trabajo de contenedores y Kubernetes Terraform. Con Pure Cloud Block Store puede ejecutar cualquier base de datos o cargas de trabajo de contenedores en la nube, al igual que en la infraestructura en las instalaciones.

03/2025
Rancher Kubernetes Engine 2 on VMware with Portworx
Gain consistent experience across public cloud, on- premises, hybrid cloud, or edge architecture with Rancher Kubernetes Engine (RKE2) on VMware with Portworx.
Arquitectura de referencia
33 pages
CONTÁCTENOS
Comuníquese con PureÍcono de información
Ícono de chat
¿Preguntas, comentarios?

¿Tiene alguna pregunta o comentario sobre los productos o las certificaciones de Pure?  Estamos aquí para ayudar.

Ícono de llave
Programe una demostración

Programe una demostración en vivo y compruebe usted mismo cómo Pure puede ayudarlo a transformar sus datos en potentes resultados. 

Llámenos: 800-976-6494

Medios de comunicación: pr@purestorage.com

 

Pure Storage, Inc.

2555 Augustine Dr.

Santa Clara, CA 95054

800-379-7873 (información general)

info@purestorage.com

CERRAR
CerrarCerrar el ícono X
¡Su navegador ya no es compatible!

Los navegadores más antiguos a menudo representan riesgos de seguridad. Para brindar la mejor experiencia posible al utilizar nuestro sitio, actualice a cualquiera de estos navegadores más recientes.