Aller au contenu

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.

mkdir environnement-neutre
cd environnement-neutre
terraform version

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.

terraform init

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.

terraform plan
terraform apply

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.

terraform apply

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.

terraform plan
terraform apply

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.

terraform destroy

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.