Contenido

Objetivo

Comprender el origen y necesidad de las herramientas de infraestructura como código (IAC), específicamente Terraform, así como sus ventajas, sintaxis, proveedores y aprovisionadores para sustentar, diseñar y aprovisionar infraestructuras completas utilizando el lenguaje de configuración de HashiCorp (HCL).

Descripción

Con la aparición de las nubes informáticas el proceso de aprovisionamiento de recursos ha tenido que flexibilizarse pues, aunque existe la forma de hacerlo manual, la demanda puede bajar o subir de manera exponencial con lo que vas a necesitar de herramientas que te ayuden a hacer esto de manera confiable y repetible.

De ahí la necesidad de las herramientas para Infraestructura como código (IaC), en este caso, cubrirás Terraform el cual goza de grandes ventajas en términos de popularidad, escalabilidad, flexibilidad, y facilidad de uso.

Durante el desarrollo de este módulo, profundizaras en la sintaxis del lenguaje HCL, proveedores disponibles, y aprovisionadores que Terraform ofrece.
Explicación

Haz clic para revisar la explicación.

Conceptos básicos de Terraform

Recursos adicionales

Los siguientes enlaces son externos a la Universidad Tecmilenio, al acceder a ellos considera que debes apegarte a sus términos y condiciones.

Revisa el siguiente video:

Para conocer más sobre conceptos básicos de Terraform, revisa el siguiente video:

TechWorld with Nana. (2020, 4 de julio). Terraform explained in 15 mins | Terraform Tutorial for Beginners [Archivo de video]. Recuperado de https://youtu.be/l5k1ai_GBDE

Actividad

Objetivo

Generar un archivo de configuración HCL para la creación de una instancia básica de EC2.

Instrucciones

Requisitos:

  • Tener una cuenta gratuita o de paga de AWS con perfil configurado
El siguiente enlace es externo a la Universidad Tecmilenio,
al acceder a éste considera que debes apegarte a sus términos y condiciones.



  • Tener instalado Terraform
El siguiente enlace es externo a la Universidad Tecmilenio,
al acceder a éste considera que debes apegarte a sus términos y condiciones.


  • Tener un editor compatible como Visual Studio Code https://code.visualstudio.com/ con plugin instalado para Terraform
El siguiente enlace es externo a la Universidad Tecmilenio,
al acceder a éste considera que debes apegarte a sus términos y condiciones.


El siguiente enlace es externo a la Universidad Tecmilenio,
al acceder a éste considera que debes apegarte a sus términos y condiciones.


 

Paso 1.

Para confirmar que Terraform se encuentra instalado y funcionando, puedes correr en la línea de comandos la palabra terraform -version con lo vas a ver la versión de Terraform que tienes instalado.

 

$ terraform -version
Terraform v1.1.7
on darwin_amd64

 

Paso 2.

Hacer una carpeta llamada terraform que contenga un archivo llamado main.tf y agregar la configuración del proveedor aws.

 

provider "aws" {
region = "us-east-1"
}

 

Paso 3.

En la consola, correr terraform init y revisar que Terraform se inicialice correctamente con el proveedor aws

Paso 4.

En la consola, correr terraform plan, como solo se agregó el proveedor, Terraform debería indicar que no se va a realizar ningún cambio.

Paso 5.

Crear el archivo desarrollo.auto.tfvars donde se agregarán las siguientes variables:

 

region = "us-east-1"
id_imagen = "ami-000722651477bd39b"
tipo_instancia = "t2.micro"

 

Paso 6.

Ajustar el archivo main.tf para que use las variables declaradas en desarrollo.auto.tfvars

 

variable "region" {}
variable "id_imagen" {}
variable "tipo_instancia" {}

provider "aws" {
region = var.region
}

resource "aws_instance" "foo" {
ami = var.id_imagen
instance_type = var.tipo_instancia
}

 

Paso 7.

Volver a correr terraform plan para ver cómo se indican los cambios que se van a realizar para lograr provisionar una instancia de EC2 de AWS.

Checklist
  • Crear un archivo de configuración HCL aceptado por Terraform.
  • Utilizar correctamente variables declaradas en un archivo..auto.tfvars
  • Identificar los recursos que se van a provisionar en el plan de Terraform