RousselTMLEARNING

Article · Terraform: from discovery to expertise

Environments and organisation

This article is available in French.

1. Plusieurs environnements #

Dossiers, tfvars ou workspaces.

Comparaison #

ApprocheAvantagesLimites
Dossier par environnementIsolation forte, backends distinctsUn peu de duplication (réduite par les modules)
Fichiers tfvarsUn code, des valeurs par environnementMême backend : prudence
Workspaces CLIPlusieurs états pour un même codeFacile de se tromper de workspace ; pas d'isolation des droits

Exemple #

envs/
  recette/  main.tf  backend.tf  recette.tfvars
  prod/     main.tf  backend.tf  prod.tfvars
modules/
  reseau/ app/ base/

cd envs/prod && terraform plan -var-file=prod.tfvars

2. Découper en couches #

Des états plus petits.

Couches #

Couches d'infrastructure
Une modification applicative ne peut pas détruire le réseau par erreur.
data "terraform_remote_state" "reseau" {
  backend = "s3"
  config  = { bucket = "etat-terraform-123", key = "reseau/prod.tfstate", region = "eu-west-3" }
}

module "app" {
  source     = "../../modules/app"
  subnet_ids = data.terraform_remote_state.reseau.outputs.private_subnets
}

3. Outils complémentaires #

Réduire la répétition.

Outils #

  • Terragrunt : configuration DRY des backends et des dépendances entre couches.
  • HCP Terraform : workspaces distants avec variables, droits et exécutions par équipe.
  • Lecture de sorties par sources de données (paramètres SSM, étiquettes) plutôt que par terraform_remote_state pour réduire le couplage.

📄 Terraform multi-environnements, workspaces et organisation des dépôts →

My progress

  • ⏱ Estimated time : ≈ 5 min

Sign in to track your progress and take notes. Sign in

💬 Ask a question

Recommended Articles

Les modules Terraform : concevoir, versionner et réutiliser

Structurer Terraform avec des modules : module racine et modules enfants, entrées et sorties, sou...

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

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

Préparer la certification HashiCorp Certified: Terraform Associate

Guide de préparation au Terraform Associate : format, objectifs officiels (concepts de l'IaC, flu...

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

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

Support us

♥ SUPPORT US

Support RousselTM Learning

Courses, articles, labs and certificates stay free with no intrusive ads. A voluntary contribution, of any amount you choose, pays for hosting, lab environments and new content.

Contribute with PayPal Any amount · card or PayPal accountLearn more
QR code PayPal
Or scan this QR code with your phone

Thank you, every contribution counts!