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 *