DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesInfrastructure as Code : premiers pas avec Terraform02 - Configurer un provider et initialiser un projet

Détails

  • 15 minutes
  • Débutant

Objectifs

  • Déclarer un provider dans le bloc terraform {}
  • Lancer terraform init et comprendre ce qu'il installe
  • Utiliser les contraintes de versions pour les providers
  • Inspecter le dossier .terraform/ généré
Module Infrastructure as Code : premiers pas avec Terraform

Exercice 02 : Configurer un provider et initialiser un projet

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Écrire le bloc terraform { required_providers {} }
  • ✅ Exécuter terraform init et comprendre ce qu'il fait
  • ✅ Utiliser les contraintes de versions (~>, >=)
  • ✅ Lire la sortie de terraform providers

Durée estimée : 15 minutes

Difficulté : ⭐☆☆☆☆ (Débutant)

Prérequis : Terraform installé, exercice 01 terminé


📖 Contexte

Le provider est le plugin qui permet à Terraform de communiquer avec une API (AWS, Docker, GitHub, etc.). Terraform ne sait rien faire sans provider. terraform init télécharge les plugins déclarés depuis le registry HashiCorp et génère un lockfile pour garantir la reproductibilité.


📋 Énoncé

Vous allez configurer le provider Docker (sans compte cloud requis) dans un projet Terraform, l'initialiser et explorer les fichiers générés.

Résultat attendu :

  • Un projet initialisé avec le provider Docker
  • Compréhension du dossier .terraform/ et du fichier .terraform.lock.hcl

🧭 Déroulement de l'exercice

Tâche 1 : Créer le bloc terraform avec required_providers

Dans un nouveau fichier versions.tf, déclarez que votre projet requiert le provider Docker de kreuzwerker/docker en version ~> 3.0.

Indice : ~> 3.0 signifie "3.0 ou supérieur, mais inférieur à 4.0" (patch autorisé, major non).

Vérification : terraform validate retourne Success! (même sans ressources).


Tâche 2 : Ajouter le bloc provider

Dans main.tf, ajoutez un bloc provider "docker" {} vide (la configuration par défaut convient pour un Docker local).

Indice : Le bloc provider configure la connexion à l'API. Pour Docker local, aucun paramètre n'est nécessaire.

Vérification : Le fichier main.tf contient un bloc provider "docker" {}.


Tâche 3 : Exécuter terraform init

Lancez terraform init et observez attentivement la sortie.

Indice : Terraform télécharge le provider, crée .terraform/providers/, et génère .terraform.lock.hcl.

Vérification : La sortie affiche Terraform has been successfully initialized!


Tâche 4 : Explorer les fichiers générés

Inspectez le contenu de .terraform/ et du fichier .terraform.lock.hcl.

Indice : .terraform.lock.hcl enregistre les versions exactes et les hash de chaque provider. Il doit être commité dans Git.

Vérification : cat .terraform.lock.hcl affiche la version exacte du provider Docker téléchargé.


Tâche 5 : Lister les providers

Utilisez terraform providers pour afficher l'arbre des providers utilisés par le projet.

Indice : Cette commande affiche les providers requis et leur source, même avant un init.

Vérification : La sortie montre provider[registry.terraform.io/kreuzwerker/docker].


🗂️ Mini-Projet : Projet multi-providers

Configurez un projet qui utilise deux providers : Docker et hashicorp/random (pour générer des valeurs aléatoires).

hcl
# versions.tf
terraform {
  required_version = ">= 1.5.0"

  required_providers {
    docker = {
      source  = "kreuzwerker/docker"
      version = "~> 3.0"
    }
    random = {
      source  = "hashicorp/random"
      version = "~> 3.5"
    }
  }
}
hcl
# main.tf
provider "docker" {}

provider "random" {}

resource "random_pet" "container_name" {
  length = 2
}

Checkpoints :

  • terraform init télécharge les deux providers sans erreur
  • .terraform.lock.hcl contient les deux providers avec leurs hash
  • terraform providers affiche les deux providers
  • terraform validate retourne Success!
  • ls .terraform/providers/ montre les dossiers des deux providers

Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Créer le bloc terraform avec required_providers
  • Tâche 2 : Ajouter le bloc provider
  • Tâche 3 : Exécuter terraform init
  • Tâche 4 : Explorer les fichiers générés
  • Tâche 5 : Lister les providers
  • 🗂️ Mini-Projet : Projet multi-providers