En el espacio de infraestructura como código (IaC), una de las herramientas más útiles que ha surgido en los últimos años es Terraform de HashiCorp para Windows. La capacidad de versionar la infraestructura, automatizar la provisión de recursos y ejecutar en diferentes proveedores de nube es enorme para cualquier flujo de trabajo de DevOps y automatización.
Un caso de uso para Terraform es en CI/CD. Terraform te permite:
Mis últimos videos
- crear un entorno de pruebas
- implementar una aplicación
- ejecutar pruebas de integración
- destruir el entorno de pruebas
Todos los pasos se realizan automáticamente. ¡Y no se requiere un centro de datos!
Prerrequisitos
Este artículo es un tutorial sobre cómo instalar y utilizar Terraform para Windows. Si deseas seguirlo, asegúrate de tener los siguientes requisitos previos en su lugar.
- A Windows 10 device
- Una cuenta de AWS
- La CLI de AWS instalada y configurada en ese dispositivo. Puedes aprender cómo instalarla aquí y cómo configurarla aquí.
- (Opcional) Visual Studio Code con la extensión de Terraform
Instalando la aplicación de Terraform para Windows
Para aprovechar el poder de Terraform, primero debes instalarlo en el sistema operativo de tu elección. En este artículo, me centraré en Windows. Pero ten en cuenta que Terraform también puede ejecutarse en otros sistemas operativos. Si no estás usando Windows, echa un vistazo a la documentación de instalación.
La Manera Difícil
Si no puedes usar un gestor de paquetes o deseas comprender cómo funciona el proceso de instalación, puedes instalar Terraform manualmente. Puedes hacerlo descargando el archivo binario y agregándolo al variable de entorno del sistema. Si esto te parece intimidante, te aseguro que hay una manera más fácil de hacerlo que aprenderás en la siguiente sección.
- Descarga la versión adecuada de Terraform desde la página de descargas de HashiCorp. En mi caso, es la versión de Windows de 64 bits.
- Crea una carpeta en tu unidad C:\ donde puedas colocar el ejecutable de Terraform. Prefiero colocar instaladores en una subcarpeta (por ejemplo, C:\tools) donde puedes poner los binarios.
- Después de que la descarga finalice, busca el archivo en Explorador de archivos. Extrae el archivo zip en la carpeta que creaste en el paso 2.
- Abre el menú de Inicio y escribe “entorno” y lo primero que aparecerá debería ser la opción Editar las variables de entorno del sistema. Haz clic en eso y deberías ver esta ventana.

5. Haz clic en Variables de entorno… en la parte inferior y verás esto:

6. En la sección inferior donde dice Variables del sistema, busca una llamada Ruta y haz clic en editar. Luego verás una lista de dónde encontrar los binarios que Windows podría necesitar por cualquier razón dada.
7. Haz clic en Nuevo y agrega la ruta de la carpeta donde se encuentra terraform.exe al final de la lista. Debería lucir así cuando termines.

8. Haz clic en Aceptar en cada uno de los menús que has abierto hasta que no haya más.
9. Para asegurarte de que Windows detecte la nueva ruta, abre un nuevo prompt de CMD/PowerShell e ingresa refreshenv
.
10. Verifica que la instalación fue exitosa ingresando terraform --version
. Si devuelve una versión, estás listo para continuar.
La manera fácil
¡Uf, eso fue mucho trabajo! Sería terrible tener que hacerlo cada vez que necesites instalar un nuevo software en tu dispositivo. Vamos a usar un gestor de paquetes en su lugar. Hay algunos gestores de paquetes que puedes usar para instalar Terraform en Windows. Para Windows, mi favorito es Chocolatey. Hace que instalar, eliminar y actualizar software sea tan simple como un comando de una línea, y Terraform no es una excepción a eso.
Para instalar Terraform con Chocolatey, sigue estos pasos:
- Abre un símbolo del sistema/Prompt de PowerShell como administrador e instala Chocolatey usando el comando de su página de instalación.
- Una vez que eso esté completo, ejecuta
choco install terraform
. Si prefieres, también puedes agregar-y
al final para aceptar automáticamente la instalación en tu dispositivo.
Después de que se ejecute ese comando, obtendrás algo como esto:
3. Verifica que la instalación haya sido exitosa ingresando terraform --version
.
El método para Linux
I can almost hear what you’re thinking. Wait a minute Chris, didn’t you say this was going to cover installing Terraform on Windows?
Sí, y aún lo es. Pero una de las características en Windows 10 es el Subsistema de Windows para Linux, o WSL. Esto te permite ejecutar comandos de Linux en Windows.
- Instala WSL. No voy a entrar en detalles sobre cómo instalar y configurar WSL aquí, pero si deseas seguir y aún no lo tienes configurado. Un video de TechSnips que hice sobre este tema se puede encontrar a continuación.
2. En tu terminal de WSL, ejecuta apt-get install unzip
. Necesitarás esto para extraer los binarios de Terraform más tarde.
3. Descarga Terraform ejecutando wget https://releases.hashicorp.com/terraform/0.12.6/terraform_0.12.6_linux_amd64.zip
. Recuerda reemplazar la versión y la arquitectura con la que mejor se adapte a tu dispositivo. Puedes encontrar la lista completa de versiones de Terraform aquí.
4. Ejecute unzip terraform_0.12.6_linux_amd64.zip terraform
para descomprimir el contenido del archivo zip en una carpeta llamada terraform.
5. Una vez que el archivo ZIP esté descomprimido, necesitará moverlo a algún lugar accesible por la ruta del sistema. Afortunadamente, Linux tiene una carpeta a la que los usuarios pueden agregar binarios de forma predeterminada. Mueva el binario de Terraform allí ejecutando mv terraform /usr/local/bin/
. La carpeta /usr/local/bin ya está configurada en la ruta de su sistema.
6. Verifique que la instalación haya sido exitosa ejecutando terraform --version
.
Automatización de una Instancia EC2 de Terraform en AWS
Ahora que ha instalado Terraform, puede comenzar a usarlo. En esta publicación, voy a demostrar la creación de una instancia EC2 de Terraform simple en AWS. Pero tenga en cuenta que Terraform puede aprovisionar cientos de tipos diferentes de infraestructura.
Para comenzar, primero necesitará un directorio para ejecutar los scripts de Terraform EC2 desde. Es importante tener un directorio separado para cada entorno. En el momento en que estoy escribiendo esto, Terraform no tiene una forma de filtrar lo que ejecuta. Ejecutará cada script en su directorio de trabajo actual.
Configuración de un Script de TF
- En su consola de cmd o PowerShell ejecutada como administrador, ejecute
mkdir hello-terraform
luegocd ./hello-terraform
- Una vez que tienes un directorio, necesitarás un script de Terraform. A continuación se muestra un ejemplo que puedes utilizar. Este es un script típico de Terraform que utiliza el proveedor AWS provider para crear una instancia AWS resource.
Si deseas el script completo, cópialo a continuación. Si quieres entender lo que hace este script, sigue leyendo a continuación.
# Terraform HCL
3. Guarda el script anterior como main.tf
en tu directorio de trabajo.
Entendiendo los Scripts de TF
Antes de continuar, mira el bloque a continuación y lo que está declarando.
#Terraform HCL
Este bloque le dice a Terraform EC2 qué proveedor utilizar. Hay proveedores para todos los principales proveedores de nube, así como algunos proveedores locales. Si eres más avanzado y sabes cómo escribir en Golang, también puedes escribir tu propio proveedor.
Este bloque indica a Terraform que utilice el proveedor AWS y las claves de acceso en el archivo ~/.aws/credentials
bajo el nombre de perfil default
. Este archivo se crea cuando configuras AWS CLI con el comando aws config
, como se indica en los requisitos previos.
También es importante señalar que ~/
es una abreviatura del directorio del usuario actual. Si provienes de un entorno Windows, esto es equivalente a $env:USERPROFILE
o %USERPROFILE%
. Pero Terraform no admite esa notación en el momento de escribir esto.
El siguiente bloque describe una instancia EC2 de Terraform y cómo construirla. Si observas la documentación de Terraform para aws_instance, podrás ver que algunos parámetros son obligatorios y otros opcionales. En este caso, los parámetros obligatorios son el ID de la AMI (ami-07d0cf3af28718ef8
) para Ubuntu 18.04 LTS y t2.micro
como tipo de instancia.
Al pasar un bloque de etiquetas con la clave Name
y el valor HelloTerraform
, esta etiqueta también se asignará a la instancia que se cree. Esto es opcional.
#Terraform HCL
Ahora que el script está configurado, llámalo ejecutando terraform init
desde tu directorio de trabajo. Esto descargará todas las dependencias y el proveedor en una carpeta llamada .terraform
. Si todo va bien, deberías obtener algo como esto:
Antes de realizar cambios, Terraform EC2 te permite ver qué se creará ejecutando terraform plan
. Aquí está lo que producirá esa salida:
# aws_instance.ubuntu se creará
Construyendo la instancia EC2 de AWS: Creación
Ahora estás listo para ejecutarlo por ti mismo ejecutando terraform apply
. A continuación, verás una salida similar a terraform plan
, pero con una confirmación adicional para asegurarte de que realmente deseas aplicar estos cambios.
Una vez que escribas ‘sí’, Terraform EC2 comenzará a aprovisionar la instancia de Terraform EC2 llamando a las APIs de AWS con la clave de acceso en tu archivo de credenciales. Esto puede llevar algo de tiempo. Una vez finalizado, verás algo como lo siguiente:
Destruyendo la Instancia EC2 de AWS
Una vez que hayas terminado con el entorno de prueba, puedes destruir la instancia.
En tu consola cmd/PowerShell, escribe terraform destroy
. Al igual que con el comando apply
, verás una lista de recursos que Terraform va a destruir y luego una solicitud antes de destruirlos realmente.
Una vez que escribas sí, Terraform EC2 comenzará a destruir la instancia y confirmará cuando haya terminado.