Qué es Terraform y cómo instalarlo y usarlo en AWS EC2

Actualizar paquetes

Terraform es la herramienta «Infraestructura como código (IaC)». Se utiliza para construir, administrar y modificar la infraestructura de forma segura y repetible camino.

Se utiliza para administrar entornos con un lenguaje de configuración llamado HashiCorp Configuration Language (HCL) para implementaciones automatizadas legibles por humanos.

Terraform se puede usar para administrar la infraestructura en múltiples nubes como AWS, GCP y otras. Terraform crea un archivo de estado que es la fuente de verdad para las configuraciones de recursos. Esto significa que cada vez que se crean recursos, este archivo de estado se actualiza con el estado de los recursos que se están creando.

En este artículo veremos los pasos para instalar Terraform en Ubuntu y usarlo para crear una VPC en la nube de AWS.

Para aprender y saber más sobre Terraform haz click aquí.

requisitos previos

  1. Cuenta AWS (Crear si no tienes uno).
  2. Instancias EC2 (haga clic aquí para aprender a crear una instancia EC2)
  3. Acceso root a los servidores.
  4. ‘access_key’ y ‘secret_key’ de un usuario de AWS IAM. (Haga clic aquí para obtener información sobre cómo crear un usuario de IAM con ‘access_key’ y ‘secret_key’ en AWS)

Qué nosotros lo haremos

  1. Instalar Terraform
  2. Escribir archivos de configuración de Terraform.
  3. Cree una VPC usando los archivos de configuración de Terraform
  4. Elimine la VPC creada usando Terraform

Instalar Terraform

Instalar Terraform es bastante simple y directo. Puede encontrar el paquete adecuado para su sistema en aquí.

Antes de descargar el archivo, instalemos el paquete ‘wget’ y ‘unzip’ si no está disponible en el sistema usando los siguientes comandos.

apt-obtener actualización -y
apt-get install wget unzip -y

Actualizar paquetes

Vamos a crear un directorio dedicado ‘terraform’ en ‘/opt/’ donde podemos descargar el paquete

cd /opt/
mkdir terraformar
cd terraform/

Descargue el paquete terraform usando el comando ‘wget’ y descomprímalo.

wget https://releases.hashicorp.com/terraform/0.12.18/terraform_0.12.18_linux_amd64.zip
descomprimir terraform_0.12.18_linux_amd64.zip
ls-lt

Descargar Terraform

Una vez que descomprima el paquete que descargó, verá una ‘terraformación’ binaria. Mueva este binario a /usr/local/bin/.

Puede verificar si la instalación fue exitosa o no usando el comando terraform pero verificando su versión.

mv terraform /usr/local/bin/
terraformar -v

Versión Terraform

Escribir archivos de configuración de Terraform

Cree un directorio dedicado donde pueda crear archivos de configuración de terraformación

mkdir terraformar
cd terraform/

Utilice un editor de su elección y copie y pegue las siguientes configuraciones para crear variables.tf, terraform.tfvars y main.tf

Cree ‘main.tf’ que es responsable de crear VPC en AWS. La siguiente configuración creará una VPC, una puerta de enlace de Internet, una tabla de rutas, una zona de disponibilidad y un grupo de seguridad. Este main.tf leerá valores de variables de variables.tf y terraform.tfvars.

vim principal.tf

provider "aws" {
      region     = "${var.region}"
      access_key = "${var.access_key}"
      secret_key = "${var.secret_key}"
}
resource "aws_vpc" "vpc" {
     cidr_block = "10.0.0.0/16"
}
resource "aws_internet_gateway" "gateway" {
     vpc_id = "${aws_vpc.vpc.id}"
}
resource "aws_route" "route" {
     route_table_id         = "${aws_vpc.vpc.main_route_table_id}"
     destination_cidr_block = "0.0.0.0/0"
     gateway_id             = "${aws_internet_gateway.gateway.id}"
}
data "aws_availability_zones" "available" {}
resource "aws_subnet" "main" {
    count                   = "${length(data.aws_availability_zones.available.names)}"
    vpc_id                  = "${aws_vpc.vpc.id}"
    cidr_block              = "10.0.${count.index}.0/24"
    map_public_ip_on_launch = true
    availability_zone       = "${element(data.aws_availability_zones.available.names, count.index)}"
}
resource "aws_security_group" "default" {
     name        = "http-https-allow"
     description = "Allow incoming HTTP and HTTPS and Connections"
     vpc_id      = "${aws_vpc.vpc.id}"
     ingress {
         from_port = 80
         to_port = 80
         protocol = "tcp"
         cidr_blocks = ["0.0.0.0/0"]
    }
     ingress {
         from_port = 443
         to_port = 443
         protocol = "tcp"
         cidr_blocks = ["0.0.0.0/0"]
    }
}

Cree ‘variables.tf’ que contiene la declaración de las variables.

vim variables.tf

variable "access_key" {
     description = "Access key to AWS console"
}
variable "secret_key" {
     description = "Secret key to AWS console"
}
variable "region" {
     description = "Region of AWS VPC"
}

Cree ‘terraform.tfvars’ que contiene la definición de la variable definida en el archivo anterior.

vim terraform.tfvars

region = "eu-west-3"
access_key = "AKIAQ6GAIA5XDX32PVJ6"
secret_key = "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"

Ahora, debe tener 3 archivos, a saber, variables.tf, terraform.tfvars y main.tf

Cree una VPC usando los archivos de configuración de Terraform

El primer comando que se utilizará es ‘terraform init’. Este comando descarga e instala complementos para proveedores utilizados dentro de la configuración. En nuestro caso es aws.

inicio de terraformación

Crear VPS usando Terraform

El segundo comando que se utilizará es ‘plan de terraformación’. Este comando se utiliza para ver los cambios que se producirán en la infraestructura.

plan de terraformación

Plan de terraformación

El comando ‘terraform apply’ creará los recursos en el aws mencionado en el archivo main.tf. Se le pedirá que proporcione su entrada para crear los recursos.

Aplicar terraformación

Aplicar Terraform

Puede ir a la consola de AWS VPC para verificar si se crea la VPC.

VPS creado con Terraform

Elimine la VPC creada usando Terraform

Si conoce más recursos necesarios que creó usando la configuración mencionada en el archivo main.tf, puede usar el comando «terraform destroy» para eliminar todos esos recursos.

terraformar destruir

Terraformar destruir

Conclusión

En este artículo vimos los pasos para instalar Terraform. También vimos la configuración requerida para crear una VPC junto con algunos otros recursos relacionados. Ahora también estamos familiarizados con la declaración y definición de variables.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *