2026-03-31 11:51:58 +02:00
2026-03-30 13:14:41 +02:00
2026-03-30 13:14:41 +02:00
2026-03-30 13:14:41 +02:00
2026-03-31 11:51:58 +02:00
2026-03-31 11:51:58 +02:00
2026-03-31 11:51:58 +02:00
2026-03-31 11:51:58 +02:00
2026-03-30 14:18:20 +02:00
2026-03-31 11:51:58 +02:00
2026-03-31 11:51:58 +02:00

ENI Terraform - Atelier 02

Description

Projet Terraform pour deployer une infrastructure AWS dans le cadre du cours ENI.

Ressources creees

Ressource Type Details
VPC aws_vpc CIDR 10.0.0.0/16
Sous-reseau 1 aws_subnet CIDR 10.0.1.0/24 - AZ dynamique
Sous-reseau 2 aws_subnet CIDR 10.0.2.0/24 - AZ dynamique
Instance Ubuntu aws_instance Type t3.micro, sur sous-reseau 1
Instance Amazon Linux aws_instance Type t3.micro, sur sous-reseau 2
Volume EBS Ubuntu aws_ebs_volume 10 Go gp3, attache a l'instance Ubuntu
Volume EBS Amazon Linux aws_ebs_volume 10 Go gp3, attache a l'instance Amazon Linux

Tags appliques

  • Owner : johan.leroy2023
  • CourseId : cours-tf-aws-s14
  • Name : prefixe par le trigramme jle

Pre-requis

  • Terraform >= 1.0
  • Un compte AWS avec les credentials configurees
  • Region : eu-west-3 (Paris)

Configurer les credentials AWS

# Option 1 : Variables d'environnement (copier depuis le portail AWS)
export AWS_ACCESS_KEY_ID="..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_SESSION_TOKEN="..."

# Option 2 : AWS CLI
aws configure

Portail de connexion : https://d-99677b87c0.awsapps.com/start

Commandes Terraform

Initialisation

# Telecharge les providers et initialise le projet
terraform init

Validation

# Verifie la syntaxe des fichiers .tf
terraform validate

# Formate les fichiers .tf selon les conventions
terraform fmt

# Formate et verifie sans modifier (utile en CI)
terraform fmt -check

Planification

# Affiche les ressources qui seront creees/modifiees/supprimees
terraform plan

# Sauvegarde le plan dans un fichier
terraform plan -out=plan.tfplan

Deploiement

# Cree les ressources (demande confirmation)
terraform apply

# Applique sans confirmation (attention !)
terraform apply -auto-approve

# Applique un plan sauvegarde
terraform apply plan.tfplan

Inspection

# Affiche l'etat complet des ressources deployees
terraform show

# Liste les ressources gerees par Terraform
terraform state list

# Detail d'une ressource specifique
terraform state show aws_instance.servers[\"ubuntu\"]

# Affiche les outputs (vpc_id, subnet_ids, etc.)
terraform output

Destruction

# Supprime toutes les ressources (demande confirmation)
terraform destroy

# Supprime sans confirmation (attention !)
terraform destroy -auto-approve

Surcharge de variables

# Surcharger une variable en ligne de commande
terraform plan -var="trigramme=abc"

# Utiliser un fichier de variables
terraform plan -var-file="custom.tfvars"

Structure du projet

.
├── main.tf            # Ressources AWS (VPC, subnets, EC2, EBS)
├── variables.tf       # Variables avec valeurs par defaut et validations
├── outputs.tf         # Valeurs de sortie (IDs, IPs)
├── .gitignore         # Fichiers exclus du depot
├── .terraform.lock.hcl # Verrouillage des versions de providers
├── atelier01.pdf      # Enonce de l'atelier 01
├── atelier02.pdf      # Enonce de l'atelier 02
└── README.md          # Ce fichier

Outputs

Nom Description
vpc_id ID du VPC
subnet_ids Map des IDs des sous-reseaux
instance_ids Map des IDs des instances EC2
instance_private_ips Map des IPs privees des instances EC2
ebs_volume_ids Map des IDs des volumes EBS additionnels

Variables

Variable Default Description
aws_region eu-west-3 Region AWS
owner johan.leroy2023 Tag Owner
course_id cours-tf-aws-s14 Tag CourseId
trigramme jle Prefixe des ressources
vpc_cidr 10.0.0.0/16 CIDR du VPC
subnets map(object) Sous-reseaux avec name et cidr
instances map(object) Instances avec ami, type et subnet_key
root_volume_size 30 Taille du disque racine (Go)
ebs_volume_size 10 Taille du volume EBS additionnel (Go)
Description
Cours ENI Terraform
Readme 143 KiB
Languages
HCL 100%