GNU/Linux >> Tutoriales Linux >  >> Linux

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

Terraform es la herramienta "Infraestructura como código (IaC)". Se utiliza para construir, administrar y cambiar 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 varias 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 haga clic aquí.

Requisitos previos

  1. Cuenta de AWS (cree si no tiene una).
  2. Instancias EC2 (haga clic aquí para aprender a crear una instancia EC2)
  3. Acceso raíz a los servidores.
  4. 'access_key' &'secret_key' de un usuario de AWS IAM. (Haga clic aquí para aprender a crear un usuario de IAM con 'access_key' y 'secret_key' en AWS, )

Qué haremos

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

Instalar Terraform

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

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

apt-get update -y
apt-get install wget unzip -y

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

cd /opt/
mkdir terraform
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

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

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

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

Escribir archivos de configuración de Terraform

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

mkdir terraform
cd terraform/

Use 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, debería tener 3 archivos, a saber, variables.tf, terraform.tfvars y main.tf

Crear 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 los proveedores que se usan en la configuración. En nuestro caso es aws.

  inicio de terraformación

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

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.

aplicación de terraformación

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

Elimine la VPC creada mediante 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

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.


Linux
  1. ¿Qué es un comando Chown en Linux y cómo usarlo?

  2. ¿Qué es un comando cURL y cómo usarlo?

  3. Cómo instalar y usar Flatpak en Linux

  4. Cómo instalar y usar Traceroute en Linux

  5. ¿Qué es Build-Essential-Ubuntu, cómo instalarlo y usarlo?

Cómo instalar y usar phpMyAdmin en Linux

Cómo instalar y usar R en Ubuntu

Cómo instalar y usar el comando fd en Linux

Cómo instalar y usar Nu Shell en Linux

¿Qué es EasyApache y cómo lo uso?

Cómo instalar y usar Docker en AlmaLinux 8