RousselTMLEARNING

Automatisation

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

Organiser Terraform pour plusieurs environnements : dossiers par environnement, fichiers tfvars, workspaces CLI et leurs limites, découpage en couches (réseau, données, applications), lecture d'états voisins et Terragrunt.

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.

Articles liés

Terraform : principes, architecture et flux de travail

Comprendre Terraform : infrastructure as code déclarative, architecture (cœur, fournisseurs, état), flux init…

Le langage HCL : ressources, variables, sorties, données et expressions

Écrire du Terraform : blocs terraform, provider, resource et data, variables typées avec validation, locals, …

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, azurerm, gcs, HCP …

Pour aller plus loin

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !