GUIDE TECHNIQUE · TERRAFORM
Terraform : premier projet avec init, plan et apply
Apprendre les commandes Terraform init, fmt, validate, plan et apply avec un projet HCL reproductible, sans compte cloud ni facture. Le laboratoire utilise la ressource intégrée terraform_data : il modifie seulement un état Terraform local, pas une infrastructure distante.
L’ESSENTIEL EN BREF
Les étapes clés
Ce guide présente 6 étapes, de « Vérifier le CLI et isoler le laboratoire » à « Tester une modification et nettoyer le laboratoire ».
Avant de commencer : Terraform CLI installé depuis une distribution officielle et vérifiable avec terraform version.
01 · CADRAGE
Périmètre et résultat visé
Résultat attendu : terraform validate réussit sans provider cloud ni secret.
Public concerné : Administrateurs systèmes, ingénieurs infrastructure et DevOps découvrant l’Infrastructure as Code
Terraform CLI 1.5 ou version ultérieure compatible avec terraform_data (introduite dans Terraform 1.4). Terminal local Linux, macOS ou Windows ; commandes illustrées dans un shell POSIX.
Contrôlez les versions, les droits et les options disponibles dans votre environnement avant de suivre la procédure.
02 · AVANT DE COMMENCER
Prérequis et points de contrôle
- Terraform CLI installé depuis une distribution officielle et vérifiable avec terraform version.
- Un répertoire de laboratoire dédié, sans fichier d’état ou configuration de production.
- Connaissance élémentaire de l’éditeur de texte et d’un terminal.
- Aucun compte cloud requis : la ressource intégrée terraform_data sert uniquement à observer le cycle de vie Terraform.
03 · VUE D’ENSEMBLE
Comprendre l’architecture et les flux
04 · TUTORIEL
Procédure complète, étape par étape
Suivez les étapes dans l’ordre et contrôlez chaque résultat avant de poursuivre. Renseignez les paramètres adaptés à votre environnement.
ÉTAPE 1 / 6
Vérifier le CLI et isoler le laboratoire
Un exercice fiable commence par une version connue et un répertoire indépendant de la production.
- Contrôler la version Terraform installée et confirmer sa provenance.
- Créer un répertoire dédié, vérifier qu’il ne contient ni state ni anciens fichiers .tf.
- Ne jamais exécuter ce premier exercice dans un répertoire IaC utilisé par l’entreprise.
terraform version
mkdir -p terraform-lab
cd terraform-lab
pwdÀ vérifier : Le CLI affiche une version compatible et le laboratoire est vide.
Point de vigilance : Ne pas lancer terraform init dans un dossier de production par simple curiosité.
ÉTAPE 2 / 6
Décrire une ressource avec HCL
Terraform compare une configuration déclarative à son état : la petite ressource intégrée permet de comprendre le principe sans accéder à un fournisseur cloud.
- Créer main.tf avec le code affiché.
- Repérer le bloc terraform, la variable, la ressource et l’output.
- Vérifier que le nom d’environnement de l’exemple est non sensible.
# main.tf
terraform {
required_version = ">= 1.5.0, < 2.0.0"
}
variable "environment" {
type = string
default = "recette"
}
resource "terraform_data" "demo" {
input = var.environment
}
output "environment" {
value = terraform_data.demo.output
}À vérifier : main.tf décrit une ressource locale et une sortie de configuration.
Point de vigilance : terraform_data mémorise une valeur dans le state ; elle ne simule pas un déploiement cloud réel.
ÉTAPE 3 / 6
Initialiser et valider la configuration
init prépare le répertoire, fmt normalise le style et validate vérifie la cohérence interne sans prouver l’accès à un cloud.
- Exécuter l’initialisation ; aucun provider externe n’est nécessaire pour cette ressource.
- Normaliser le fichier puis vérifier la validité du code HCL.
- Conserver main.tf et le fichier de verrouillage des dépendances lorsqu’il existe.
terraform init
terraform fmt
terraform validateÀ vérifier : La configuration est initialisée, formatée et validée sans erreur.
Point de vigilance : validate ne vérifie pas les permissions AWS, Azure ou GCP des projets réels.
ÉTAPE 4 / 6
Lire le plan avant toute application
plan explicite les opérations envisagées et n’applique aucun changement. La revue du plan constitue le premier contrôle humain.
- Afficher un plan et repérer l’ajout annoncé pour terraform_data.demo.
- Lire les signes + (création), ~ (modification) et - (suppression) ; refuser une suppression inattendue dans un projet réel.
- Confirmer que l’opération porte uniquement sur le laboratoire.
terraform planÀ vérifier : Le plan annonce la création de terraform_data.demo, sans infrastructure distante.
Point de vigilance : Un plan est une prévision calculée avec des données disponibles à cet instant, pas une garantie contre toutes les dérives.
ÉTAPE 5 / 6
Appliquer avec confirmation puis vérifier l’état
apply exécute le plan après la confirmation interactive de l’utilisateur ; l’output et l’état montrent le résultat.
- Exécuter apply et vérifier le plan avant de saisir yes lorsque Terraform le demande.
- Lire l’output environment et consulter la liste des adresses de ressources.
- Relancer plan : aucune modification n’est attendue si la configuration est inchangée.
terraform apply
terraform output environment
terraform state list
terraform planÀ vérifier : L’output indique recette et le plan suivant ne propose aucun changement.
Point de vigilance : Le fichier terraform.tfstate local peut contenir des données sensibles dans un vrai projet : ne jamais le committer.
ÉTAPE 6 / 6
Tester une modification et nettoyer le laboratoire
Une nouvelle valeur doit produire une proposition explicite ; l’exercice montre aussi comment clore un environnement de recette.
- Modifier la valeur par défaut en integration puis relancer plan pour observer la différence.
- Si l’exercice est terminé, exécuter destroy uniquement dans ce dossier de démonstration, après lecture du plan.
- Ajouter *.tfstate, *.tfstate.* et .terraform/ au .gitignore si vous versionnez le dossier.
terraform plan
# Après revue, et uniquement dans ce laboratoire :
terraform destroyÀ vérifier : Le changement est visible au plan ; les ressources du laboratoire peuvent ensuite être retirées.
Point de vigilance : Ne jamais transposer terraform destroy sur un workspace de production sans procédure autorisée.
RÉFÉRENCES TECHNIQUES
Documentation officielle
Retrouvez les prérequis, les fonctionnalités et les versions prises en charge par Terraform. Vérifiez les commandes sur un environnement de test avant leur utilisation en production.
05 · RECETTE
Comment vérifier que tout fonctionne ?
terraform validate réussit sans provider cloud ni secret.
Le premier plan n’annonce que la création de terraform_data.demo.
Après application, terraform output environment retourne recette.
Un second terraform plan sans changement indique No changes.
Aucun fichier terraform.tfstate n’est ajouté à Git.
06 · DIAGNOSTIC
Problèmes fréquents et résolution
terraform: command not found
Cause probable : CLI absent du PATH ou installation incomplète
Que faire : Vérifier l’installation officielle et relancer terraform version.
Unsupported resource type
Cause probable : Terraform trop ancien pour terraform_data
Que faire : Utiliser une version prise en charge (Terraform 1.4 minimum).
Error acquiring the state lock
Cause probable : Un autre processus utilise le state ou le verrou n’a pas été libéré
Que faire : Identifier l’exécution concurrente ; ne pas supprimer arbitrairement le verrou.
Un nouveau plan recrée une ressource
Cause probable : Fichier d’état absent ou changement de dossier
Que faire : Revenir au répertoire d’origine et examiner le backend avant toute application.
07 · QUESTIONS PRATIQUES
Questions fréquentes
À quoi sert terraform init ?
À initialiser le répertoire de travail, les modules et les providers requis, et à configurer le backend.
terraform plan crée-t-il des ressources ?
Non : il calcule les opérations proposées. apply les exécute après validation selon les règles de l’environnement.
Ce laboratoire provisionne-t-il un serveur ?
Non. terraform_data est une ressource intégrée qui permet d’apprendre le workflow sans appeler une API cloud.
Pourquoi ignorer terraform.tfstate ?
Le state décrit les ressources suivies et peut contenir des informations sensibles, même si les sorties sont masquées.
AUTRES TECHNOLOGIES
Guides complémentaires
VOTRE ENVIRONNEMENT
Besoin d’aller plus loin sur votre environnement ?
Infrastructure as Code, modules et gouvernance : échangeons sur la fiabilité et la sécurité de vos déploiements Terraform.
Échanger avec ADN Consulting