1. Principe #
Des briques réutilisables.
Structure #
module "reseau" {
source = "terraform-aws-modules/vpc/aws"
version = "~> 5.0"
name = "prod"
cidr = "10.0.0.0/16"
azs = ["eu-west-3a", "eu-west-3b"]
private_subnets = ["10.0.11.0/24", "10.0.12.0/24"]
public_subnets = ["10.0.1.0/24", "10.0.2.0/24"]
}
module "app" {
source = "./modules/app"
subnet_ids = module.reseau.private_subnets
}2. Sources et versions #
D'où viennent les modules.
Sources #
| Source | Exemple |
|---|---|
| Dossier local | ./modules/app |
| Registre public | terraform-aws-modules/vpc/aws + version |
| Git | git::https://git.exemple.fr/modules/app.git?ref=v1.4.0 |
| Registre privé | app.terraform.io/acme/app/aws |
Règle #
Bonne Pratique : Épinglez toujours une version (ou une étiquette Git) : un module qui change sous vos pieds rend les plans imprévisibles.
3. Bien concevoir #
Des modules utiles.
Règles #
- Un module = une responsabilité (réseau, base, application), pas une simple enveloppe d'une ressource.
- Variables typées, documentées, avec validations et valeurs par défaut sûres.
- Sorties pour tout ce dont les autres modules ont besoin.
- Exemples et tests (terraform test) dans le dépôt du module.
- Versionnage sémantique et journal des changements.
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
Articles recommandés
Terraform multi-environnements, workspaces et organisation des dépôts
Organiser Terraform pour plusieurs environnements : dossiers par environnement, fichiers tfvars, ...
Préparer la certification HashiCorp Certified: Terraform Associate
Guide de préparation au Terraform Associate : format, objectifs officiels (concepts de l'IaC, flu...
Bonnes pratiques Terraform : structure, état, sécurité, revue et maintenance
Les bonnes pratiques Terraform en équipe : structure des dépôts, nommage, versions épinglées, éta...
Le langage HCL : ressources, variables, sorties, données et expressions
Écrire du Terraform : blocs terraform, provider, resource et data, variables typées avec validati...
Terraform : principes, architecture et flux de travail
Comprendre Terraform : infrastructure as code déclarative, architecture (cœur, fournisseurs, état...
L'état Terraform : backends distants, verrouillage, import et refactorisation
Gérer l'état Terraform : rôle du fichier d'état, données sensibles, backends distants (S3, azurer...
Tester et sécuriser Terraform : validate, terraform test, tflint, Checkov et politiques
Garantir la qualité du code Terraform : fmt et validate, tests natifs terraform test avec fournis...
Terraform en CI/CD : pipelines, revue du plan, OIDC et GitOps
Automatiser Terraform : pipeline plan sur demande de fusion et apply après approbation, publicati...
Terraform sur plusieurs clouds : AWS, Azure, Google Cloud, OVHcloud et Kubernetes
Utiliser Terraform avec les principaux fournisseurs : aws, azurerm, google, ovh et openstack, kub...