Hashicorp Terraform es una herramienta de infraestructura como código (IaC) que te permite aprovisionar y administrar la infraestructura de nube. Terraform proporciona complementos llamados proveedores que te permiten interactuar con proveedores de servicios en la nube y otras APIs. Puedes usar el proveedor de Terraform para Google Cloud (proveedor de Google Cloud) a fin de aprovisionar y administrar la infraestructura de Google Cloud.
Beneficios de usar Terraform
En esta sección, se explican algunos de los beneficios de usar Terraform para aprovisionar y administrar la infraestructura de Google Cloud:
- Terraform es la herramienta más usada para aprovisionar y automatizar la infraestructura de Google Cloud. Puedes usar el proveedor de Google Cloud para configurar y administrar todos los recursos de Google Cloud con la misma sintaxis y herramientas declarativas.
- Terraform te permite especificar el estado final que prefieras para tu infraestructura. Luego, 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 muestre lo que hará Terraform cuando apliques tu configuración. Esto te permite evitar sorpresas cuando modificas tu infraestructura a través de Terraform.
- Terraform te permite empaquetar y reutilizar el código común en forma de módulos. En los módulos, se presentan interfaces estándar para crear recursos en la nube. Simplifican los proyectos mediante el aumento de la legibilidad y permiten que los equipos organicen la infraestructura en bloques legibles. Además, Google Cloud publica una serie de módulos implementables como planos y ejemplos de inicio como Soluciones de inicio rápido.
- Terraform registra el estado actual de la infraestructura y te permite administrar el estado de manera efectiva. El archivo de estado de Terraform realiza un seguimiento de todos los recursos en una implementación.
Con Terraform
Terraform tiene una sintaxis declarativa y orientada a la configuración que puedes usar para autorizar la infraestructura que deseas aprovisionar. Con esta sintaxis, definirás el estado final preferido de tu infraestructura en un archivo de configuración de Terraform. Luego, usarás la CLI de Terraform para aprovisionar la infraestructura basada en el archivo de configuración.
En los siguientes pasos, se explica cómo funciona Terraform:
- Describe la infraestructura de Google Cloud que deseas aprovisionar en un archivo de configuración de Terraform. No es necesario crear un código que describa cómo aprovisionar esta configuración.
- Ejecuta el comando
terraform plan
, que evalúa tu configuración y genera un plan de ejecución. Puedes revisar el plan y realizar cambios según sea necesario. - Luego, ejecuta el comando
terraform apply
, que realiza las siguientes acciones:- Aprovisiona tu infraestructura según tu plan de ejecución mediante la invocación de las APIs de Google Cloud correspondientes en segundo plano.
- 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 en la infraestructura del mundo real. Terraform usa este archivo para conocer el estado más reciente de la infraestructura y determinar cuándo crear, actualizar y destruir recursos.
- Luego, cuando ejecutes
terraform apply
, Terraform usa la asignación en el archivo de estado para comparar la infraestructura existente con el código y realizar actualizaciones según sea necesario:- Si un objeto de recurso definido en el archivo de configuración no existe en el archivo de estado, Terraform lo crea.
- Si existe un objeto de recurso en el archivo de estado, pero tiene una configuración diferente de tu archivo de configuración, Terraform actualiza el recurso para que coincida con tu archivo de configuración.
- Si un objeto de recurso en el archivo de estado coincide con tu archivo de configuración, Terraform deja el recurso sin cambios.
Proveedores de Google Cloud
Existen dos proveedores que te permiten aprovisionar y administrar la infraestructura de Google Cloud:
google
: Usa este proveedor para aprovisionar y administrar las APIs de Google Cloud.google-beta
: Usa este proveedor para aprovisionar y administrar las APIs beta de Google Cloud.
Para obtener instrucciones sobre el uso de estos proveedores, consulta la referencia de configuración del proveedor de Google Cloud.
Los proveedores de google
y google-beta
se desarrollan mediante una herramienta llamada Magic Modules. Magic Modules permite a los colaboradores realizar cambios en una sola base de código y desarrollar proveedores google
y google-beta
de forma simultánea.
Puedes contribuir a los proveedores de Google Cloud mediante Magic Modules mágicos si sigues las instrucciones de la guía de contribución de Magic Modules.
¿Qué sigue?
- Obtén más información sobre cómo crear un servidor web básico en Compute Engine mediante Terraform.
- Obtén información sobre cómo almacenar el estado de Terraform en un bucket de Cloud Storage.
- Revisa las diversas muestras de Terraform para Google Cloud.
- Revisa los módulos y planos de Terraform para Google Cloud.