Terraform Cloud et collaboration 25 min de lecture

Terraform Cloud et workflows d'equipe

Terraform Cloud vs CLI

Terraform Cloud (TFC) ajoute une couche de collaboration au-dessus de Terraform CLI :

  • Remote execution — Les plans et apply s'executent sur les serveurs TFC
  • State management — Le state est stocke et versionne automatiquement
  • VCS integration — Declenchement automatique sur push Git
  • Policy as Code — Sentinel ou OPA pour valider les plans
  • Private Registry — Registre prive de modules

Configuration du backend cloud

terraform {
  cloud {
    organization = "mon-organisation"

    workspaces {
      name = "production"
    }
  }
}

# Authentification
# terraform login

VCS-driven workflow

Le workflow VCS est le plus courant en equipe :

  1. Un developpeur cree une branche et ouvre une Pull Request
  2. TFC execute automatiquement un speculative plan
  3. L'equipe revoit le plan dans la PR
  4. Apres merge sur main, TFC execute le plan et attend la confirmation
  5. Un operateur confirme l'apply

Sentinel Policy as Code

# Exemple de policy Sentinel : interdire les instances trop grandes
import "tfplan/v2" as tfplan

allowed_types = ["t3.micro", "t3.small", "t3.medium"]

main = rule {
  all tfplan.resource_changes as _, rc {
    rc.type is "aws_instance" implies
      rc.change.after.instance_type in allowed_types
  }
}

Variables et secrets dans TFC

# Les variables sensibles sont stockees de maniere securisee
# Elles ne sont jamais affichees dans les logs
# Types : Terraform variables et Environment variables
# Scope : workspace, variable set (partage entre workspaces)
Bonne pratique : Utilisez des variable sets pour partager les credentials entre workspaces sans les dupliquer.