Travaux pratiques : Création d’un module

Travaux pratiques : Création d’un module

Travaux Pratiques : Création d'un Module Terraform pour AWS

Ce TP vous guide dans la création de votre premier module Terraform pour AWS en 10 étapes. L'objectif est de comprendre les principes de base de la modularisation dans Terraform.

Étape 1 : Préparation de l'environnement

Assurez-vous d'avoir Terraform installé et configuré avec vos credentials AWS. Si ce n'est pas le cas, suivez le guide d'installation officiel de Terraform : Installation de Terraform

Étape 2 : Création de la structure du module

Créez un nouveau répertoire pour votre module et ajoutez les fichiers de base :
mkdir mon_module_aws
cd mon_module_aws
touch main.tf variables.tf outputs.tf README.md

Étape 3 : Définition des variables

Dans le fichier variables.tf, définissez les variables d'entrée pour votre module :
variable "region" {
  description = "AWS region"
  type        = string
  default     = "us-west-2"
}

variable "instance_type" {
  description = "EC2 instance type"
  type        = string
  default     = "t2.micro"
}

variable "ami_id" {
  description = "AMI ID for the EC2 instance"
  type        = string
}

Étape 4 : Création des ressources AWS

Dans main.tf, définissez les ressources AWS que votre module va créer. Par exemple, une instance EC2 :
resource "aws_instance" "example" {
  ami           = var.ami_id
  instance_type = var.instance_type

  tags = {
    Name = "ExampleInstance"
  }
}

Étape 5 : Définition des outputs

Dans outputs.tf, définissez les valeurs que votre module va retourner :
output "instance_id" {
  description = "ID of the EC2 instance"
  value       = aws_instance.example.id
}

output "instance_public_ip" {
  description = "Public IP address of the EC2 instance"
  value       = aws_instance.example.public_ip
}

Étape 6 : Documentation du module

Dans README.md, documentez l'utilisation de votre module, ses entrées, sorties et un exemple d'utilisation.

Étape 7 : Test local du module

Créez un fichier test.tf à la racine de votre projet pour tester votre module :
module "test_instance" {
  source        = "./mon_module_aws"
  region        = "us-west-2"
  instance_type = "t2.micro"
  ami_id        = "ami-0c55b159cbfafe1f0"  # Remplacez par un AMI ID valide
}

output "test_instance_id" {
  value = module.test_instance.instance_id
}

output "test_instance_ip" {
  value = module.test_instance.instance_public_ip
}

Étape 8 : Initialisation et application

Initialisez Terraform et appliquez la configuration :
terraform init
terraform apply

Étape 9 : Vérification des ressources

Vérifiez que les ressources ont été créées correctement dans la console AWS ou via l'AWS CLI.

Étape 10 : Nettoyage

Une fois le test terminé, n'oubliez pas de détruire les ressources :
terraform destroy

Ressources supplémentaires

Ce TP vous permettra de comprendre les bases de la création d'un module Terraform pour AWS. N'hésitez pas à explorer davantage et à ajouter des fonctionnalités supplémentaires à votre module !