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 manière.

Il est utilisé pour gérer les environnements avec un langage de configuration appelé HashiCorp Configuration Language (HCL) pour des déploiements automatisés et 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 des 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 allons voir les étapes pour installer Terraform sur Ubuntu et l’utiliser pour créer un VPC sur le cloud AWS.

Pour apprendre et en savoir plus sur Terraform, clique ici.

Pré-requis

  1. Compte AWS (Créer si tu n’en as pas).
  2. Une Instance EC2 (Cliquez ici pour apprendre à créer une Instance EC2)
  3. Accès racine aux serveurs.
  4. La ‘clé_accès’ et la ‘clé_secrète’ d’un utilisateur AWS IAM. (Cliqueici pour apprendre à créer un utilisateur IAM avec‘access_key’ et ‘secret_key’ sur AWS).

Ce que nous allons faire

  1. Installer Terraform
  2. Rédige les fichiers de configuration de 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. Tu peux trouver le paquet approprié pour ton système ici.

Avant de télécharger le fichier, installe les paquets ‘wget’ et ‘unzip’ s’ils ne sont pas disponibles sur ton système à l’aide des commandes suivantes.

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

Mets à jour les paquets

Créons un répertoire dédié ‘terraform’ sous ‘/opt/’ où nous pourrons télécharger le paquet.

cd /opt/
mkdir terraform
cd terraform/

Télécharge le paquet terraform à l’aide de la commande ‘wget’ et décompresse-le.

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

Télécharger Terraform

Une fois que tu as décompressé le paquet que tu as téléchargé, tu verras un binaire ‘terraform’. Déplace ce binaire dans /usr/local/bin/.

Tu peux 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

Version de Terraform

Écrire les fichiers de configuration Terraform

Crée un répertoire dédié où tu pourras créer des fichiers de configuration terraform

mkdir terraform
cd terraform/

Utilise un éditeur de ton choix et fais un copier-coller des configurations suivantes pour créer variables.tf, terraform.tfvars et main.tf

Crée ‘main.tf’ qui est responsable de la création d’un 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 devariables.tf etterraform.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ée‘variables.tf‘ qui contient la déclaration des 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"
}

Crée‘terraform.tfvars’ qui contient la définition de la variable définie dans le fichier ci-dessus.

vimterraform.tfvars

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

Tu devrais maintenant avoir 3 fichiers, à savoirvariables.tf, terraform.tfvars et main.tf.

Crée un VPC à l’aide des fichiers de configuration Terraform

La première commande à utiliser est ‘terraform init’. Cette commandetélécharge et installe les plugins pour les fournisseurs utilisés dans la configuration. Dans notre cas, il s’agit de aws.

terraform init

Créer un VPS à l'aide de Terraform

La deuxième commande à utiliser est ‘terraform plan’. Cette commande est utilisée pour voir les changements qui auront lieu sur l’infrastructure.

terraform plan

Plan Terraform

La commande ‘terraform apply’ créera les ressources sur l’aws mentionné dans le fichier main.tf. Tu seras invité à fournir tes données pour créer les ressources.

terraform apply

Terraform Appliquer

Tu peux aller dans la console AWS VPC pour vérifier si le VPC est créé.

VPS créé avec Terraform

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

Si tu connais d’autres ressources nécessaires que tu as créées à l’aide de la configuration mentionnée dans le fichier main.tf, tu peux utiliser la commande « terraform destroy » pour supprimer toutes ces ressources.

terraform destroy

Terraform détruire

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 qui y sont liées. Maintenant, nous sommes également familiarisés avec la déclaration et la définition des variables.

Vous aimerez aussi...