Files
ENI-Terraform/README.md
Johan LEROY 2a0b8641c5 add readme
2026-03-30 13:47:52 +02:00

3.8 KiB

ENI Terraform - Atelier 01

Description

Projet Terraform pour deployer une infrastructure AWS basique 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 eu-west-3a
Sous-reseau 2 aws_subnet CIDR 10.0.2.0/24 - AZ eu-west-3b
Instance EC2 aws_instance Type t3.micro, disque 30 Go (gp3)

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.server

# 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)
├── variables.tf       # Variables avec valeurs par defaut et validations
├── outputs.tf         # Valeurs de sortie (IDs, IP)
├── .gitignore         # Fichiers exclus du depot
├── .terraform.lock.hcl # Verrouillage des versions de providers
├── atelier01.pdf      # Enonce de l'atelier
└── README.md          # Ce fichier

Outputs

Nom Description
vpc_id ID du VPC
subnet_ids IDs des 2 sous-reseaux
instance_id ID de l'instance EC2
instance_private_ip IP privee de l'instance EC2

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
subnet_cidrs ["10.0.1.0/24", "10.0.2.0/24"] CIDRs des sous-reseaux
availability_zones ["eu-west-3a", "eu-west-3b"] Zones de disponibilite
ami_id ami-03638fc4f87bac487 AMI de l'instance
instance_type t3.micro Type d'instance
root_volume_size 30 Taille du disque (Go)