Infrastructure as code avec Terraform

Infrastructure as code avec Terraform est un cours de niveau avancé de 5 leçons (environ 1 h 30), avec 16 exercices et 15 questions de quiz. Prérequis : Déployer une application sur le cloud. Le cours demande un environnement de projet complet, prévu dans une phase ultérieure de la plateforme.

  • Cloud et DevOps
  • Avancé
  • 5 leçons
  • 1 h 30
  • 16 exercices
  • Environnement de projet complet (phase 2)

Le cours en bref

Ce cours transforme l'infrastructure créée à la main en code versionné, relu et appliqué automatiquement. Vous apprendrez le cycle init, plan, apply, la gestion de l'état dans un backend distant, les variables, boucles et modules, la séparation des environnements, puis l'intégration de Terraform dans une CI avec revue de plan, détection de dérive et reprise de l'existant. Les exercices utilisent des providers locaux pour des résultats vérifiables sans compte cloud.

Ce que tu sauras faire

  • Écrire une configuration Terraform et lire un plan avant de l'appliquer
  • Gérer l'état dans un backend distant chiffré et verrouillé
  • Paramétrer une configuration avec variables, outputs, locals, count et for_each
  • Concevoir et réutiliser des modules versionnés
  • Isoler staging et production par dossiers, workspaces, fichiers tfvars et comptes distincts
  • Automatiser fmt, validate, plan et apply en CI, détecter la dérive et reprendre l'existant avec import et moved

Programme des 5 leçons

  1. 01

    Ressources, providers et état

    18 minAperçu gratuit
    • Décrire une infrastructure sous forme de fichiers HCL déclaratifs
    • Enchaîner le cycle init, plan, apply et destroy en lisant correctement le plan
    • Comprendre le rôle du fichier d'état et le stocker dans un backend distant verrouillé

    Infrastructure as code déclarativeProvidersCycle init, plan, apply, destroyFichier d'état et backend

  2. 02

    Variables, outputs, locals et boucles

    18 min
    • Paramétrer une configuration avec des variables typées et validées
    • Exposer des valeurs avec des outputs et factoriser avec des locals
    • Créer plusieurs ressources avec count et for_each

    Variables d'entréeOutputsValeurs localescount et for_each

  3. 03

    Modules : réutiliser et composer

    18 min
    • Écrire un module local avec ses variables et ses outputs
    • Appeler un module plusieurs fois et utiliser ses outputs
    • Utiliser un module du registre avec une version épinglée

    ModulesRegistre de modulesComposition de configurations

  4. 04

    Gérer plusieurs environnements

    16 min
    • Choisir entre dossiers par environnement et workspaces
    • Isoler l'état de chaque environnement
    • Paramétrer les écarts entre environnements avec des fichiers tfvars

    Environnements TerraformWorkspacesFichiers de variables par environnement

  5. 05

    Revue de plan, CI et évolution de l'existant

    20 min
    • Automatiser fmt, validate et plan dans une CI à chaque pull request
    • Appliquer exactement le plan relu avec un fichier de plan
    • Détecter la dérive et faire évoluer l'existant avec import et moved

    Terraform en intégration continueFichier de planDétection de dériveBlocs import et moved

Projet final

Mettre sous Terraform l'infrastructure d'une application

Reprenez l'application déployée à la main dans le cours CL2 (service de conteneurs, base managée, bucket, secrets) et décrivez-la en Terraform : modules réutilisables, environnements staging et production séparés avec états distincts, ressources existantes importées sans recréation, et pipeline GitHub Actions qui vérifie, planifie en pull request et applique après fusion. Sans compte cloud, réalisez la même structure avec les providers local et random.

Livrables

  • Un dépôt infra/ avec modules/ et environments/staging, environments/prod, chacun avec son backend et son terraform.tfvars
  • Au moins deux modules documentés (variables avec description, outputs) et appelés depuis les deux environnements
  • Les blocs import utilisés pour adopter les ressources existantes, et le plan montrant 0 destruction
  • Un workflow GitHub Actions : fmt -check, validate, plan -out en pull request, apply du fichier de plan sur main, authentification OIDC
  • Un README décrivant le flux de modification, la promotion staging puis production et la procédure en cas de dérive

Critères d'évaluation

  • Aucun état ni secret n'est versionné ; .terraform.lock.hcl l'est
  • Staging et production ont des états et des identifiants séparés
  • Les modules n'embarquent aucun provider codé en dur et leurs versions sont épinglées
  • Le plan de la configuration finale sur l'existant ne prévoit aucune destruction ni remplacement inattendu
  • Le pipeline bloque la fusion si fmt, validate ou plan échouent, et l'apply n'a lieu que sur main

Questions fréquentes

Faut-il un compte cloud pour suivre ce cours ?

Non. Les exercices utilisent les providers local et random, qui créent des fichiers et des valeurs locales : tout le cycle Terraform se pratique sans compte ni facturation. Les exemples du cours montrent les ressources équivalentes chez AWS et Google Cloud.

Quelle différence entre Terraform et OpenTofu ?

OpenTofu est un fork open source de Terraform, né après le changement de licence de Terraform en 2023. Le langage et les commandes vus dans ce cours sont communs aux deux pour l'essentiel ; la commande s'appelle tofu au lieu de terraform.

Terraform remplace-t-il Docker ou Kubernetes ?

Non, ils sont complémentaires. Terraform crée l'infrastructure (réseau, bases, buckets, clusters, services managés) ; Docker emballe l'application et Kubernetes ou une plateforme managée l'exécute.

Peut-on reprendre une infrastructure déjà créée à la main ?

Oui. Le bloc import rattache une ressource existante à la configuration sans la recréer. La dernière leçon montre la démarche, ainsi que la détection des modifications manuelles.

Ce cours, raconté pour ton métier

Dis ce que tu veux savoir faire : « Infrastructure as code avec Terraform » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.

L'aperçu est gratuit, et les cours se suivent un par un sans payer. Le parcours ne contient que des leçons du catalogue.