GNU/Linux >> Linux Esercitazione >  >> Linux

Che cos'è Terraform e come installarlo e utilizzarlo su AWS EC2

Terraform è lo strumento "Infrastructure as Code (IaC)". Viene utilizzato per costruire, gestire e modificare l'infrastruttura in modo sicuro e ripetibile modo.

Viene utilizzato per gestire ambienti con un linguaggio di configurazione chiamato HashiCorp Configuration Language (HCL) per implementazioni automatizzate leggibili dall'uomo.

Terraform può essere utilizzato per gestire l'infrastruttura su più cloud come AWS, GCP e altri. Terraform crea un file di stato che è la fonte di verità per le configurazioni delle risorse. Ciò significa che ogni volta che vengono create risorse, questo file di stato viene aggiornato con lo stato delle risorse create.

In questo articolo vedremo i passaggi per installare Terraform su Ubuntu e utilizzarlo per creare un VPC su AWS cloud.

Per saperne di più su Terraform fai clic qui.

Prerequisiti

  1. Account AWS (crea se non ne hai uno).
  2. Un'istanza EC2 (fai clic qui per imparare a creare un'istanza EC2)
  3. Accesso root ai server.
  4. 'access_key' &'secret_key' di un utente AWS IAM. (Fai clic qui per imparare a creare un utente IAM con 'access_key' e 'secret_key' su AWS, )

Cosa faremo

  1. Installa Terraform 
  2. Scrivi i file di configurazione di Terraform.
  3. Crea un VPC utilizzando i file di configurazione di Terraform
  4. Elimina il VPC creato utilizzando Terraform

Installa Terraform

L'installazione di Terraform è piuttosto semplice e diretta. Puoi trovare il pacchetto adatto al tuo sistema da qui.

Prima di scaricare il file installiamo il pacchetto 'wget' e 'unzip' se non disponibile sul sistema utilizzando i seguenti comandi.

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

Creiamo una directory dedicata 'terraform' sotto '/opt/' dove possiamo scaricare il pacchetto

cd /opt/
mkdir terraform
cd terraform/

Scarica il pacchetto terraform usando il comando 'wget' e decomprimilo.

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

Dopo aver decompresso il pacchetto scaricato, vedrai un binario 'terraform'. Sposta questo binario in /usr/local/bin/.

Puoi verificare se l'installazione è andata a buon fine o non utilizzando il comando terraform ma controllandone la versione.

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

Scrivi i file di configurazione di Terraform

Crea una directory dedicata dove puoi creare file di configurazione terraform

mkdir terraform
cd terraform/

Utilizza un editor a tua scelta e copia e incolla le seguenti configurazioni per creare variabili.tf, terraform.tfvars e main.tf

Crea 'main.tf' che è responsabile della creazione di VPC  su AWS. La configurazione seguente creerà un VPC, un gateway Internet, una tabella di percorsi, una zona di disponibilità e un gruppo di sicurezza. Questo main.tf leggerà i valori delle variabili da variables.tf e terraform.tfvars.

vim main.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"]
    }
}

Crea 'variables.tf' che contiene la dichiarazione delle variabili.

vim variabili.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"
}

Crea 'terraform.tfvars' che contiene la definizione della variabile definita nel file sopra.

vim terraform.tfvars

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

Ora dovresti avere 3 file, vale a dire, variables.tf, terraform.tfvars e main.tf

Crea un VPC utilizzando i file di configurazione di Terraform

Il primo comando da utilizzare è 'terraform init'. Questo comando scarica e installa i plug-in per i provider utilizzati nella configurazione. Nel nostro caso è aws.

  terraforma init

Il secondo comando da usare è 'terraform plan'. Questo comando viene utilizzato per vedere le modifiche che avverranno sull'infrastruttura.

piano terraforma

Il comando 'terraform apply' creerà le risorse sugli aws menzionati nel file main.tf. Ti verrà chiesto di fornire il tuo input per creare le risorse.

Applicazione della piattaforma

Puoi accedere alla console AWS VPC per verificare se il VPC è stato creato.

Elimina il VPC creato utilizzando Terraform

Se conosci più risorse richieste che hai creato utilizzando la configurazione menzionata nel file main.tf, puoi utilizzare il comando "terraform destroy" per eliminare tutte quelle risorse.

terraform distruggi

Conclusione

In questo articolo abbiamo visto i passaggi per installare Terraform. Abbiamo anche visto la configurazione richiesta per creare un VPC insieme ad alcune altre risorse correlate. Ora abbiamo anche familiarità con la dichiarazione e la definizione delle variabili.


Linux
  1. Che cos'è un comando Chown in Linux e come usarlo

  2. Che cos'è un comando cURL e come utilizzarlo?

  3. Come installare e utilizzare Flatpak in Linux

  4. Come installare e utilizzare Traceroute in Linux

  5. Che cos'è Build-Essential-Ubuntu, come installarlo e usarlo?

Come installare e utilizzare phpMyAdmin in Linux

Come installare e utilizzare R su Ubuntu

Come installare e utilizzare il comando fd in Linux

Come installare e utilizzare Nu Shell su Linux

Cos'è EasyApache e come si usa?

Come installare e utilizzare Docker su AlmaLinux 8