GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que Terraform et comment l'installer et l'utiliser sur AWS EC2

Terraform est l'outil "Infrastructure as Code (IaC)". Il est utilisé pour construire, gérer et modifier l'infrastructure de manière sûre et répétable chemin.

Il est utilisé pour gérer des environnements avec un langage de configuration appelé HashiCorp Configuration Language (HCL) pour des déploiements automatisés lisibles par l'homme.

Terraform peut être utilisé pour gérer l'infrastructure sur plusieurs clouds comme AWS, GCP et autres. Terraform crée un fichier d'état qui est la source de vérité pour les configurations de ressources. Cela signifie que chaque fois que des ressources sont créées, ce fichier d'état est mis à jour avec l'état des ressources en cours de création.

Dans cet article, nous verrons les étapes pour installer Terraform sur Ubuntu et l'utiliser pour créer un VPC sur le cloud AWS.

Pour en savoir plus sur Terraform cliquez ici.

Prérequis

  1. Compte AWS (créez-le si vous n'en avez pas).
  2. Une instance EC2 (Cliquez ici pour apprendre à créer une instance EC2)
  3. Accès root aux serveurs.
  4. 'access_key' &'secret_key' d'un utilisateur AWS IAM. (Cliquez ici pour apprendre à créer un utilisateur IAM avec 'access_key' et 'secret_key' sur AWS, )

Ce quenous allons faire

  1. Installer Terraform 
  2. Écrire des fichiers de configuration Terraform.
  3. Créer un VPC à l'aide des fichiers de configuration Terraform
  4. Supprimer le VPC créé à l'aide de Terraform

Installer Terraform

L'installation de Terraform est assez simple et directe. Vous pouvez trouver ici le package adapté à votre système.

Avant de télécharger le fichier, installons les packages "wget" et "unzip" s'ils ne sont pas disponibles sur le système à l'aide des commandes suivantes.

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

Créons un répertoire dédié 'terraform' sous '/opt/' où nous pouvons télécharger le package

cd /opt/
mkdir terraform
cd terraform/

Téléchargez le package terraform à l'aide de la commande 'wget' et décompressez-le.

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

Une fois que vous avez décompressé le package que vous avez téléchargé, vous verrez un "terraform" binaire. Déplacez ce fichier binaire vers /usr/local/bin/.

Vous pouvez vérifier si l'installation a réussi ou non en utilisant la commande terraform mais en vérifiant sa version.

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

Écrire des fichiers de configuration Terraform

Créez un répertoire dédié où vous pouvez créer des fichiers de configuration terraform

mkdir terraform
cd terraform/

Utilisez un éditeur de votre choix et copiez-collez les configurations suivantes pour créer variables.tf, terraform.tfvars et main.tf

Créez 'main.tf' qui est chargé de créer le VPC sur AWS. La configuration suivante créera un VPC, une passerelle Internet, une table de routage, une zone de disponibilité et un groupe de sécurité. Ce main.tf lira les valeurs des variables de variables.tf et 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"]
    }
}

Créez 'variables.tf' qui contient la déclaration des variables.

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

Créez 'terraform.tfvars' qui contient la définition de la variable définie dans le fichier ci-dessus.

vim terraform.tfvars

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

Maintenant, vous devriez avoir 3 fichiers, à savoir variables.tf, terraform.tfvars et main.tf

Créer un VPC à l'aide des fichiers de configuration Terraform

La première commande à utiliser est "terraform init". Cette commande télécharge et installe les plug-ins pour les fournisseurs utilisés dans la configuration. Dans notre cas, c'est aws.

  init terraform

La deuxième commande à utiliser est 'terraform plan'. Cette commande permet de voir les changements qui auront lieu sur l'infrastructure.

plan de terraform

La commande 'terraform apply' créera les ressources sur les aws mentionnés dans le fichier main.tf. Vous serez invité à fournir votre contribution pour créer les ressources.

application terraform

Vous pouvez accéder à la console AWS VPC pour vérifier si le VPC est créé.

Supprimer le VPC créé à l'aide de Terraform

Si vous connaissez d'autres ressources requises que vous avez créées à l'aide de la configuration mentionnée dans le fichier main.tf, vous pouvez utiliser la commande "terraform destroy" pour supprimer toutes ces ressources.

terraform détruit

Conclusion

Dans cet article, nous avons vu les étapes pour installer Terraform. Nous avons également vu la configuration requise pour créer un VPC ainsi que quelques autres ressources associées. Maintenant, nous sommes également familiarisés avec la déclaration et la définition des variables.


Linux
  1. Qu'est-ce qu'une commande Chown sous Linux et comment l'utiliser

  2. Qu'est-ce qu'une commande cURL et comment l'utiliser ?

  3. Comment installer et utiliser Flatpak sous Linux

  4. Comment installer et utiliser Traceroute sous Linux

  5. Qu'est-ce que Build-Essential-Ubuntu, comment l'installer et l'utiliser ?

Comment installer et utiliser phpMyAdmin sous Linux

Comment installer et utiliser R sur Ubuntu

Comment installer et utiliser la commande fd sous Linux

Comment installer et utiliser Nu Shell sous Linux

Qu'est-ce qu'EasyApache et comment l'utiliser ?

Comment installer et utiliser Docker sur AlmaLinux 8