← Tous les projets
CodeCours

Terraform

Année2026
Terraform

Infrastructure as Code avec Terraform — module 5HASH, Supinfo, jours 1 et 2.

Deux journées pour passer d’un premier conteneur décrit en code à une infrastructure structurée en modules, déployée sur plusieurs environnements, dont le state est partagé, verrouillé et protégé. Le module se poursuit sur deux jours consacrés à Ansible.

Format2 jours · 4 cours et 4 ateliers pratiques
Publicétudiants en informatique, bases Linux et Docker
Environnement100 % local : Docker et Floci (émulateur AWS) — sans compte cloud, sans frais, sans risque
Fil rougeCatCompressor, un pipeline de miniatures d’images (S3, SQS, conteneurs)

Jour 1 — Les fondamentaux

Cours 1 — Introduction à l’Infrastructure as Code

  1. Pourquoi l’Infrastructure as Code
  2. Contexte historique : du serveur physique au cloud
  3. Cas d’usage et limites
  4. Panorama des technologies (Terraform, OpenTofu, Pulumi, Ansible…)
  5. Les concepts de Terraform : providers, ressources, state, cycle plan / apply

Cours 2 — Les bases de Terraform

  1. Syntaxe et structure du langage HCL
  2. Définir des ressources
  3. Configurer des providers
  4. Lire l’existant avec les data sources

Atelier 1 — Le workflow Terraform avec Docker · 2 h

Parcourir le cycle de vie complet d’une infrastructure sur un provider simple.

  1. Préparer le projet : providers et versions épinglées
  2. Définir un premier conteneur web
  3. Ajouter une seconde ressource par le code
  4. Modifier l’infrastructure : lire un plan, comprendre un remplacement
  5. Nettoyer avec destroy

Atelier 2 — Terraform, AWS et Floci · 2 h 30

Piloter des services AWS émulés en local, au milieu d’une infrastructure existante.

  1. Démarrer l’émulateur Floci
  2. Configurer le provider AWS vers un endpoint local
  3. Créer une infrastructure hors Terraform
  4. La lire avec des data sources, et créer S3, DynamoDB, SSM, SQS (for_each) et EC2
  5. Inspecter avec terraform console et l’AWS CLI
  6. Modifier en place, puis nettoyer — ce que Terraform possède, et ce qu’il se contente de lire

Jour 2 — Structurer, collaborer, sécuriser

Cours 3 — Les modules

  1. Organiser le code avec des modules
  2. Variables et outputs
  3. Locals et fonctions natives

Cours 4 — Backends et collaboration

  1. La gestion du state
  2. Backends et workspaces
  3. La gestion des secrets
  4. La dérive d’infrastructure

Atelier 3 — Des modules réutilisables pour plusieurs environnements · 3 h

  1. Mise en route du projet CatCompressor
  2. Découper un projet en module racine et modules enfants
  3. Faire circuler les valeurs : variables, terraform.tfvars, locals, arguments de module
  4. Remonter l’information par les outputs, sur trois niveaux
  5. Composer dev et staging à partir du même module
  6. Nettoyer

Atelier 4 — State partagé, workspaces, secrets et dérive · 4 h

  1. Point de départ : le projet du matin, state local
  2. Migrer le state vers un backend S3 à verrou natif (use_lockfile)
  3. Isoler dev et staging avec les workspaces
  4. Référencer un secret : variable sensible, data source, AWS Secrets Manager
  5. Détecter une dérive et la réconcilier par un plan relu
  6. Changer de backend : déplacer les states vers GitLab
  7. Nettoyer
  8. Bonus — Intégration continue sur GitLab : fmt, validate et terraform test

Compétences visées

DomaineÀ l’issue des deux jours, l’étudiant sait…
Workflowécrire, initialiser, planifier, appliquer, modifier et détruire une infrastructure ; lire un plan avant de l’appliquer
Providersconfigurer Docker et AWS, épingler leurs versions, viser un émulateur local
Existantlire une infrastructure qu’il ne gère pas avec des data sources
Modulesdécouper un projet en modules réutilisables et composer plusieurs environnements
Valeursfaire circuler l’information par variables, .tfvars, locals, arguments et outputs
Statepartager un state sur S3 ou GitLab, le verrouiller, le versionner, le migrer
Environnementsisoler dev et staging par workspaces ou par fichiers d’environnement
Secretslire un secret sans l’écrire dans le code, et savoir où il reste en clair
Dérivedétecter un écart avec plan -refresh-only et le corriger par un plan enregistré et relu
Qualitétester une configuration avec terraform test et l’intégrer à un pipeline CI

Outils

Terraform 1.11+ · provider AWS 6.x · provider Docker (kreuzwerker/docker) · Floci · AWS CLI v2 · Docker · GitLab (stockage du state, CI) · Git · scripts fournis en bash et en PowerShell

Approche pédagogique

  • Un fil rouge unique : le même projet grandit d’atelier en atelier, de la première ressource au pipeline CI.
  • Des ateliers à trous : un squelette de projet et des consignes pas à pas — on donne le bloc, l’étudiant l’adapte et en observe l’effet.
  • Des consignes vérifiées avant chaque séance : chaque atelier est rejoué automatiquement, étape par étape, sur le squelette distribué ; chaque résultat annoncé est contrôlé, et le projet obtenu est comparé à la correction.
  • Un support à jour : verrouillage natif du state S3 (DynamoDB déprécié), provider AWS 6.x, émulateur Floci en remplacement de LocalStack Community, tests Terraform avec providers simulés.
  • Une correction et des notes enseignant détaillant chaque bloc de code ligne par ligne, avec les pièges attendus et les solutions de repli.
Projet suivantCup Of Electronic →