HashiCorp Terraform es una herramienta de infraestructura como código (IaC) que le permite aprovisionar y administrar la infraestructura de la nube. Terraform proporciona complementos llamados proveedores que le permiten interactuar con proveedores de nube y otras API. Puede utilizar el proveedor Terraform para Google Cloud para aprovisionar y gestionar Google Cloud recursos, incluido Compute Engine.
Esta página le presenta el uso de Terraform con Compute Engine, incluida una introducción a cómo funciona Terraform y algunos recursos para ayudarlo a comenzar a usar Terraform con Google Cloud. También encontrará enlaces a documentos de referencia de Terraform para Compute Engine, ejemplos de código y guías para usar Terraform para aprovisionar recursos de Compute Engine.
Para obtener instrucciones sobre cómo empezar a utilizar Terraform para Google Cloud, consulte Instalar y configurar Terraform o Terraform para Google Cloud inicio rápido .
Cómo funciona Terraform
Terraform tiene una sintaxis declarativa y orientada a la configuración, que puede utilizar para describir la infraestructura que desea aprovisionar en su Google Cloud proyecto. Después de crear esta configuración en uno o más archivos de configuración de Terraform, puede usar la CLI de Terraform para aplicar esta configuración a sus recursos de Compute Engine.
Los siguientes pasos explican cómo funciona Terraform:
- Describe la infraestructura que desea aprovisionar en un archivo de configuración de Terraform . No es necesario escribir código que describa cómo aprovisionar la infraestructura. Terraform proporciona la infraestructura por usted.
- Ejecuta el comando
terraform plan
, que evalúa su configuración y genera un plan de ejecución. Puede revisar el plan y realizar cambios según sea necesario. Ejecuta el comando
terraform apply
, que realiza las siguientes acciones:- Aprovisiona su infraestructura en función de su plan de ejecución invocando las API de Compute Engine correspondientes en segundo plano.
- Crea un archivo de estado de Terraform , que es un archivo JSON que asigna los recursos de su archivo de configuración a los recursos de la infraestructura del mundo real. Terraform utiliza este archivo para mantener un registro del estado más reciente de su infraestructura y para determinar cuándo crear, actualizar y destruir recursos.
Cuando ejecuta
terraform apply
, Terraform utiliza 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 está definido en el archivo de configuración, pero 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 a la de su archivo de configuración, Terraform actualiza el recurso para que coincida con su archivo de configuración.
- Si un objeto de recurso en el archivo de estado coincide con su archivo de configuración, Terraform deja el recurso sin cambios.
Recursos de Terraform para Compute Engine
Los recursos son los elementos fundamentales en el lenguaje Terraform. Cada bloque de recursos describe uno o más objetos de infraestructura, como redes virtuales o instancias informáticas.
La siguiente tabla enumera los recursos de Terraform disponibles para Compute Engine:
Guías basadas en Terraform para Compute Engine
La siguiente tabla enumera guías prácticas y tutoriales basados en Terraform para Compute Engine:
Guía | Detalles |
---|---|
Crear e iniciar una instancia de Compute Engine | Explica cómo crear una instancia de máquina virtual (VM). |
Cree una máquina virtual con discos SSD locales | Explica cómo se puede crear una máquina virtual con almacenamiento en disco SSD local. |
Crear instantáneas de disco | Explica cómo crear instantáneas estándar para realizar copias de seguridad periódicas de los datos de los discos. |
Duplicar un disco con clones | Explica cómo crear clones de discos zonales de un disco existente. |
Crear y administrar discos regionales | Explica cómo crear y administrar discos regionales. |
Crear y utilizar máquinas virtuales puntuales | Explica cómo crear y administrar máquinas virtuales de spot. Las VM puntuales son instancias de VM que exceden la capacidad de Compute Engine. Las máquinas virtuales spot están disponibles a precios mucho más bajos en comparación con el precio bajo demanda de las máquinas virtuales estándar. |
Agregar claves SSH a las máquinas virtuales | Describe cómo agregar claves SSH a instancias de VM que usan inicio de sesión en el sistema operativo y a máquinas virtuales que usan claves SSH basadas en metadatos. |
Ejecutar scripts de apagado | Explica cómo crear y ejecutar scripts de apagado que ejecutan comandos justo antes de que se detenga o reinicie una instancia de VM. |
Crear una reserva para un solo proyecto | Explica cómo crear una reserva de proyecto único, que solo pueden consumir instancias de VM en el mismo proyecto. |
Crear plantillas de instancias | Describe cómo crear y administrar plantillas de instancias. |
Escalado basado en horarios | Describe cómo se pueden crear programas de escalado para un MIG existente. El escalado automático basado en programación le permite mejorar la disponibilidad de sus cargas de trabajo programando la capacidad antes de la carga anticipada. |
Agregue almacenamiento en disco persistente a su VM | Explica cómo crear un volumen de disco persistente zonal en blanco que no sea de arranque y adjuntarlo a su máquina virtual. |
Configurar el inicio de sesión del sistema operativo | Describe cómo configurar el inicio de sesión en el sistema operativo. |
Adjunte un disco que no sea de arranque a una máquina virtual | Explica cómo conectar un disco zonal que no sea de arranque a su máquina virtual. |
Cree una máquina virtual que utilice una cuenta de servicio administrada por el usuario | Explica cómo crear una instancia de VM configurada para usar una cuenta de servicio administrada por el usuario. Una cuenta de servicio es un tipo especial de cuenta que normalmente utiliza una aplicación o carga de trabajo informática para realizar llamadas API autorizadas. |
Aumentar el tamaño de un disco persistente | Explica cómo aumentar el tamaño de un disco persistente. |
Habilitar pantallas virtuales en una VM | Describe cómo habilitar pantallas virtuales en una instancia de VM. |
Crear un MIG en una sola zona | Describe cómo crear un grupo de instancias administrado (MIG) en una sola zona. Colocar todas las máquinas virtuales de su MIG en una sola zona ayuda a minimizar la latencia, lo cual es útil para ciertas cargas de trabajo, por ejemplo, cargas de trabajo por lotes. |
Cree una instancia de VM con un nombre de host personalizado | Explica cómo crear una instancia de VM con un nombre de host personalizado. |
Configurar una verificación de estado y reparación automática basada en aplicaciones | Describe cómo configurar una verificación de estado basada en aplicaciones para reparar automáticamente las máquinas virtuales en un MIG. |
Cree un MIG que utilice máquinas virtuales interrumpibles | Describe cómo crear un MIG que utilice instancias de VM interrumpibles. Las máquinas virtuales interrumpibles son útiles si su carga de trabajo puede tolerar interrupciones y desea aprovechar los ahorros de costos asociados con las máquinas virtuales interrumpibles. |
Agregar y eliminar máquinas virtuales de un MIG | Describe cómo agregar y eliminar máquinas virtuales de un MIG. |
Cree un MIG con el escalado automático habilitado | Describe cómo crear un MIG de escalado automático que agrega y elimina automáticamente máquinas virtuales según la utilización promedio de CPU en todo el grupo. |
Cree un MIG con discos con estado | Describe cómo crear un MIG que utilice instancias de VM interrumpibles. Las máquinas virtuales interrumpibles son útiles si su carga de trabajo puede tolerar interrupciones y desea aprovechar los ahorros de costos asociados con las máquinas virtuales interrumpibles. |
Crear instancias de VM de SQL Server | Explica cómo crear instancias de VM de Microsoft SQL Server. SQL Server es un sistema de base de datos que se ejecuta en Windows Server y algunas distribuciones de Linux. Puede usar SQL Server en Compute Engine como parte del backend de sus aplicaciones, como un entorno de desarrollo y prueba flexible, o además de sus sistemas locales para respaldo y recuperación ante desastres. |
Crear una asignación de política de sistema operativo | Explica cómo crear una asignación de política de sistema operativo. Puede utilizar políticas de sistema operativo para mantener configuraciones de software coherentes en instancias de VM de Linux y Windows. |
Configuración de metadatos con estado en MIG | Describe cómo configurar metadatos con estado en MIG. Los metadatos de instancia son útiles para configurar propiedades y comunicarse con sus aplicaciones a través del servidor de metadatos. |
Configuración de discos persistentes con estado en MIG | Explica cómo configurar discos persistentes con estado en MIG. Configurar discos persistentes para que tengan estado le permite beneficiarse de la reparación automática y las actualizaciones automáticas de las instancias de VM, al tiempo que preserva el estado de los discos. |
Configuración de direcciones IP con estado en MIG | Describe cómo configurar direcciones IP con estado en MIG. Al configurar direcciones IP con estado en un MIG, se asegura de que las direcciones IP se conserven cuando las instancias de VM del grupo se reparan, actualizan y recrean automáticamente. |
Establecer una forma de distribución objetivo para las máquinas virtuales en un MIG regional | Explica cómo establecer una forma de distribución de destino para las máquinas virtuales. |
Cree un MIG con máquinas virtuales en varias zonas de una región | Describe cómo crear un MIG que tenga sus máquinas virtuales distribuidas en varias zonas de una región. Distribuir la carga de su aplicación en varias zonas protege su carga de trabajo contra fallas zonales. |
Deshabilite y vuelva a habilitar la redistribución proactiva de VM en un MIG regional | Describe cómo deshabilitar y volver a habilitar la redistribución proactiva de VM en un MIG regional. En un MIG regional, para mantener un número par de instancias de VM en las zonas seleccionadas de la región, utilice la redistribución de instancias proactiva. Esta opción de configuración maximiza la disponibilidad de su aplicación en caso de una falla a nivel de zona. |
Módulos y planos de Terraform para Compute Engine
Los módulos y planos le ayudan a automatizar el aprovisionamiento y la gestión de Google Cloud recursos a escala. Un módulo es un conjunto reutilizable de archivos de configuración de Terraform que crea una abstracción lógica de los recursos de Terraform. Un blueprint es un paquete de módulos desplegables y reutilizables, y una política que implementa y documenta una solución específica.
La siguiente tabla enumera los módulos y planos relacionados con Compute Engine:
Módulo o plano | Detalles |
---|---|
terraform-google-vm | Colección de submódulos obstinados que puede utilizar como componentes básicos para aprovisionar máquinas virtuales en Google Cloud. |
terraform-google-startup-scripts | Proporciona una biblioteca de scripts de inicio útiles para integrar en máquinas virtuales. |
terraform-google-container-vm | Implementa contenedores en instancias de Compute Engine |
¿Qué sigue?
- Ejemplos de código de Terraform para Compute Engine
- Terraformar en Google Cloud documentación
- Google Cloud documentación del proveedor en HashiCorp
- Infraestructura como código para Google Cloud