Les modules Terraform bien conсus accelerent les deploiements et garantissent la coherence.
Structure standard
modules/
+-- aws-vpc/
|-- main.tf
|-- variables.tf
|-- outputs.tf
|-- versions.tf
+-- README.md
Principe : un module = une responsabilite
| Module | Responsabilite |
|---|---|
| aws-vpc | Reseau, subnets, IGW |
| aws-rds | Base de donnees RDS |
| aws-ec2-asg | Auto Scaling Group |
| aws-alb | Load balancer |
Inputs avec validation
variable "instance_type" {
description = "Type d'instance EC2."
type = string
default = "t3.micro"
validation {
condition = contains(["t3.micro","t3.large"], var.instance_type)
error_message = "Type d'instance non supporte."
}
}
Versionner ses modules
module "vpc" {
source = "git::https://github.com/myorg/terraform-modules.git//aws-vpc?ref=v2.1.0"
}
Ne referencez jamais ?ref=main en production.
Notre formation Terraform couvre la conception de modules avec des ateliers.