HashiCorp Terraform es una herramienta de infraestructura como código (IaC) que te permite aprovisionar y gestionar la infraestructura en la nube. Terraform proporciona complementos llamados proveedores que te permiten interactuar con proveedores de servicios en la nube y otras APIs. Puede usar el proveedor de Terraform para Google Cloud (Google Cloud provider) para aprovisionar y gestionar Google Cloud infraestructuras.
Ventajas de usar Terraform
En esta sección se explican algunas de las ventajas de usar Terraform para aprovisionar y gestionar la infraestructura: Google Cloud
- Terraform es la herramienta más utilizada para aprovisionar y automatizar laGoogle Cloud infraestructura. Puedes usar el proveedorGoogle Cloud para configurar y gestionar todos los recursos Google Cloud con la misma sintaxis declarativa y las mismas herramientas.
- Terraform te permite especificar el estado final que prefieres para tu infraestructura. Después, puedes implementar la misma configuración varias veces para crear entornos de desarrollo, prueba y producción reproducibles.
- Terraform te permite generar un plan de ejecución que muestra lo que hará Terraform cuando apliques tu configuración. De esta forma, no te llevarás ninguna sorpresa cuando modifiques tu infraestructura a través de Terraform.
- Terraform te permite empaquetar y reutilizar código común en forma de módulos. Los módulos presentan interfaces estándar para crear recursos en la nube. Simplifican los proyectos aumentando la legibilidad y permiten a los equipos organizar la infraestructura en bloques legibles. Además, Google Cloud publica varios módulos desplegables con opiniones como planos y ejemplos para empezar como soluciones Jump Start.
- Terraform registra el estado actual de tu infraestructura y te permite gestionar el estado de forma eficaz. El archivo de estado de Terraform registra todos los recursos de una implementación.
Usar Terraform
Terraform tiene una sintaxis declarativa y orientada a la configuración que puedes usar para crear la infraestructura que quieras aprovisionar. Con esta sintaxis, definirás el estado final que prefieras para tu infraestructura en un archivo de configuración de Terraform. A continuación, usarás la CLI de Terraform para aprovisionar la infraestructura en función del archivo de configuración.
En los siguientes pasos se explica cómo funciona Terraform:
- Describe la infraestructura que quieres aprovisionar en un archivo de configuración de Terraform. Google Cloud No es necesario que escribas código que describa cómo aprovisionar esta configuración.
- Ejecutas el comando
terraform plan
, que evalúa tu configuración y genera un plan de ejecución. Puedes revisar el plan y hacer los cambios que necesites. - A continuación, ejecuta el comando
terraform apply
, que realiza las siguientes acciones:- Aprovisiona tu infraestructura en función de tu plan de ejecución invocando las APIs correspondientes en segundo plano. Google Cloud
- Crea un archivo de estado de Terraform, que es una asignación con formato JSON de los recursos del archivo de configuración a los recursos de la infraestructura real. Terraform usa este archivo para conocer el estado más reciente de tu infraestructura y para determinar cuándo crear, actualizar y eliminar recursos.
- Después, cuando ejecutes
terraform apply
, Terraform usará la asignación del archivo de estado para comparar la infraestructura actual con el código y hará las actualizaciones necesarias:- Si un objeto de recurso definido en el archivo de configuración no existe en el archivo de estado, Terraform lo crea.
- Si un objeto de recurso existe en el archivo de estado, pero tiene una configuración diferente a la de tu archivo de configuración, Terraform actualiza el recurso para que coincida con tu archivo de configuración.
- Si un objeto de recurso del archivo de estado coincide con el archivo de configuración, Terraform no lo modifica.
Google Cloud proveedores
Hay dos proveedores que te permiten aprovisionar y gestionar Google Cloud infraestructuras:
google
: usa este proveedor para aprovisionar y gestionar APIs. Google Cloudgoogle-beta
: usa este proveedor para aprovisionar y gestionar APIs beta. Google Cloud
Para obtener instrucciones sobre cómo usar estos proveedores, consulta la Google Cloud referencia de configuración de proveedores.
Los proveedores de google
y google-beta
se desarrollan con una herramienta llamada Módulos mágicos. Magic Modules permite a los colaboradores hacer cambios en una sola base de código y desarrollar proveedores de google
y google-beta
simultáneamente.
Puedes contribuir a los Google Cloud proveedores mediante módulos mágicos siguiendo las instrucciones de la guía de contribución de módulos mágicos.
Siguientes pasos
- Aprende a crear un servidor web básico en Compute Engine con Terraform.
- Consulta cómo almacenar el estado de Terraform en un segmento de Cloud Storage.
- Consulta los distintos ejemplos de Terraform Google Cloud .
- Consulta los módulos y planos de Terraform para Google Cloud