Aller au contenu

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.

Niveau Débutant6 min de lecture— vuesTerraform

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

Environnement et versions

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

ARCHITECTURE TECHNIQUEComprendre la chaîne de bout en bout
01Configuration HCL
02terraform init
03fmt et validate
04terraform plan
05Validation humaine
06terraform apply
07État local
La configuration décrit un état désiré, plan calcule une proposition de changements et apply l’exécute après confirmation. terraform_data est une ressource pédagogique intégrée ; ce parcours ne crée ni VM ni service cloud.

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.

01

É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.

  1. Contrôler la version Terraform installée et confirmer sa provenance.
  2. Créer un répertoire dédié, vérifier qu’il ne contient ni state ni anciens fichiers .tf.
  3. Ne jamais exécuter ce premier exercice dans un répertoire IaC utilisé par l’entreprise.
Exemple techniqueÀ adapter à votre environnement
terraform version
mkdir -p terraform-lab
cd terraform-lab
pwd
Ce qui se passe à cette étape
1CLI vérifié
2Répertoire isolé
3Démarrage sûr

À 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é.

02

É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.

  1. Créer main.tf avec le code affiché.
  2. Repérer le bloc terraform, la variable, la ressource et l’output.
  3. Vérifier que le nom d’environnement de l’exemple est non sensible.
Exemple techniqueÀ adapter à votre environnement
# 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
}
Ce qui se passe à cette étape
1Variable
2Ressource intégrée
3Output

À 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.

03

É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.

  1. Exécuter l’initialisation ; aucun provider externe n’est nécessaire pour cette ressource.
  2. Normaliser le fichier puis vérifier la validité du code HCL.
  3. Conserver main.tf et le fichier de verrouillage des dépendances lorsqu’il existe.
Exemple techniqueÀ adapter à votre environnement
terraform init
terraform fmt
terraform validate
Ce qui se passe à cette étape
1Init
2Format
3Validation

À 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.

04

É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.

  1. Afficher un plan et repérer l’ajout annoncé pour terraform_data.demo.
  2. Lire les signes + (création), ~ (modification) et - (suppression) ; refuser une suppression inattendue dans un projet réel.
  3. Confirmer que l’opération porte uniquement sur le laboratoire.
Exemple techniqueÀ adapter à votre environnement
terraform plan
Ce qui se passe à cette étape
1Configuration
2Différentiel
3Revue

À 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.

05

É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.

  1. Exécuter apply et vérifier le plan avant de saisir yes lorsque Terraform le demande.
  2. Lire l’output environment et consulter la liste des adresses de ressources.
  3. Relancer plan : aucune modification n’est attendue si la configuration est inchangée.
Exemple techniqueÀ adapter à votre environnement
terraform apply
terraform output environment
terraform state list
terraform plan
Ce qui se passe à cette étape
1Validation humaine
2Apply
3État stable

À 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.

06

É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.

  1. Modifier la valeur par défaut en integration puis relancer plan pour observer la différence.
  2. Si l’exercice est terminé, exécuter destroy uniquement dans ce dossier de démonstration, après lecture du plan.
  3. Ajouter *.tfstate, *.tfstate.* et .terraform/ au .gitignore si vous versionnez le dossier.
Exemple techniqueÀ adapter à votre environnement
terraform plan
# Après revue, et uniquement dans ce laboratoire :
terraform destroy
Ce qui se passe à cette étape
1Changement HCL
2Plan mis à jour
3Nettoyage

À 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.

Consulter la documentation officielle

05 · RECETTE

Comment vérifier que tout fonctionne ?

Résultat attenduContrôles avant de considérer la procédure terminée
01

terraform validate réussit sans provider cloud ni secret.

02

Le premier plan n’annonce que la création de terraform_data.demo.

03

Après application, terraform output environment retourne recette.

04

Un second terraform plan sans changement indique No changes.

05

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

Tous les guides Terraform

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

Pour aller plus loin