Atelier 1 — Série neutre
Durée indicative : 45 min
Module lié : Module 1 — L’infrastructure as code
Vous décrivez la fiche de l’environnement, vous l’appliquez, vous constatez qu’un second apply ne change rien, puis vous modifiez la description.
Il vous faut Terraform 1.16.5 ou plus récent, et un accès à Internet pour télécharger les providers au premier init. Aucun compte cloud. 1.16.5 est la dernière version stable. L’examen Associate 004, lui, est écrit pour Terraform 1.12.
1. Préparer le dossier
Pourquoi : Terraform agit dans le dossier où se trouvent les fichiers .tf.
Résultat attendu : un dossier vide environnement-neutre, et votre terminal est placé dedans.
La version affichée doit être 1.16.5 ou plus. Si la commande est introuvable, ou si la version est plus ancienne, installez Terraform 1.16.5 avant de continuer. Le module 2 reviendra sur l’installation. Ici, il suffit qu’elle soit faite.
2. Écrire la description
Pourquoi : le fichier est l’état voulu, pas une liste de clics.
Résultat attendu : un fichier main.tf dans environnement-neutre, avec le contenu suivant.
terraform {
required_version = ">= 1.16.5"
required_providers {
local = {
source = "hashicorp/local"
version = "~> 2.5"
}
random = {
source = "hashicorp/random"
version = "~> 3.7"
}
}
}
resource "random_id" "suffixe" {
byte_length = 2
}
resource "local_file" "fiche_environnement" {
filename = "${path.module}/fiche-environnement.txt"
content = "nom=lab-equipe\nsuffixe=${random_id.suffixe.hex}\n"
}
3. Initialiser
Pourquoi : init télécharge les providers demandés et prépare le dossier de travail.
Résultat attendu : un message de succès, et un dossier .terraform à côté de main.tf.
4. Voir le plan, puis appliquer
Pourquoi : le plan annonce les créations sans rien écrire encore. L’apply réalise ce plan.
Résultat attendu : le plan annonce deux créations. Après l’apply, fiche-environnement.txt existe. Son suffixe fait quatre caractères hexadécimaux.
Répondez yes quand Terraform demande une confirmation.
Ouvrez fiche-environnement.txt. Vous devez lire nom=lab-equipe et une ligne suffixe=.
5. Appliquer une seconde fois
Pourquoi : la même description, sur un environnement déjà conforme, ne doit rien recréer.
Résultat attendu : No changes dans le plan ou dans l’apply. Le suffixe du fichier ne change pas.
Regardez aussi terraform.tfstate. Il contient les deux ressources. Ne l’éditez pas. Le jour 2 explique ce carnet et ce qui arrive quand on le contourne.
6. Changer la description
Pourquoi : un changement se fait dans le fichier, puis Terraform calcule l’écart.
Résultat attendu : le plan annonce une modification du fichier, pas une nouvelle valeur aléatoire. Le suffixe reste celui du premier apply.
Dans content, remplacez lab-equipe par lab-equipe-reprise.
La fiche contient maintenant nom=lab-equipe-reprise. La ligne suffixe est inchangée. random_id ne retire une valeur que si la ressource est recréée ou détruite.
7. Détruire
Pourquoi : en lab, vous rendez la machine comme avant. Détruire retire ce que ce state gère.
Résultat attendu : fiche-environnement.txt disparaît. Le dossier du projet et main.tf restent.
Répondez yes.
Suite
Le module 2 — Les providers détaille l’installation des providers et le fait d’en déclarer plusieurs. Gardez le dossier environnement-neutre. Les ateliers suivants repartiront de cette description.