Voici la version enrichie de ton quiz Terraform pour Obsidian. J’ai ajouté l’analyse systématique des propositions incorrectes pour chaque question, afin de t’aider à comprendre les nuances entre les commandes.


🌍 Maîtrise de Terraform : Le Grand Quiz (30 Questions)

Instructions

Cliquez sur la flèche à côté de “Correction & Explication” pour révéler la réponse. Ce quiz teste votre connaissance des commandes, des options de sécurité et de la gestion de l’infrastructure as code.


🔧 Section 1 : Initialisation & Configuration

Q1 : Quelle commande télécharge les providers et initialise le backend mais peut aussi mettre à jour les modules existants avec une option spécifique ?

  1. terraform refresh

  2. terraform init -upgrade

  3. terraform get -update

  4. terraform plan -install

Q2 : Que se passe-t-il si vous lancez terraform init -backend=false ?

  1. Terraform initialise les plugins mais ne configure pas le stockage du state.

  2. Terraform supprime le backend existant.

  3. Terraform échoue car le backend est obligatoire.

  4. Terraform utilise un backend local par défaut sans poser de questions.


📋 Section 2 : Planification & Variables

Q3 : Quelle option de terraform plan permet de s’assurer que le plan ne contient que des suppressions de ressources ?

  1. -destroy

  2. -delete-only

  3. -remove

  4. -refresh-only

Q4 : Comment sauvegarder un plan pour être certain que l’exécution (apply) correspond exactement à ce qui a été validé ?

  1. terraform plan -save=plan.txt

  2. terraform plan -out=plan.tfplan

  3. terraform plan > plan.tfplan

  4. terraform apply -freeze

Q5 : Que fait l’option -target=aws_instance.web lors d’un plan ?

  1. Elle définit aws_instance.web comme la ressource prioritaire.

  2. Elle limite l’exécution du plan uniquement à cette ressource et ses dépendances.

  3. Elle importe la ressource dans le state.

  4. Elle remplace la ressource.


⚡ Section 3 : Application & Destruction

Q6 : Quelle option de terraform apply permet de forcer la recréation d’une ressource spécifique sans utiliser la commande taint ?

  1. -recreate

  2. -replace="ressource_id"

  3. -force-new

  4. -refresh-only

Q7 : Dans quel cas utiliseriez-vous terraform apply -refresh-only ?

  1. Pour forcer la création de nouvelles ressources.

  2. Pour mettre à jour le fichier state local avec la réalité du Cloud sans rien modifier sur l’infrastructure.

  3. Pour vider le cache des providers.

  4. Pour valider la syntaxe HCL.


📝 Section 4 : Formatage & Validation

Q8 : Quelle commande permet de vérifier si vos fichiers Terraform sont bien indentés sans les modifier réellement ?

  1. terraform fmt -check

  2. terraform fmt -verify

  3. terraform validate -fmt

  4. terraform fmt -diff=false

Q9 : Quelle est la différence majeure entre terraform fmt et terraform validate ?

  1. fmt vérifie la logique, validate vérifie l’esthétique.

  2. fmt réorganise le texte, validate vérifie la syntaxe, les types et la cohérence des arguments.

  3. Il n’y a aucune différence.

  4. validate télécharge les plugins.


🗂️ Section 5 : Gestion du State (État)

Q10 : Vous voulez renommer une ressource dans votre code mais ne voulez pas que Terraform la détruise et la recrée. Quelle commande state utilisez-vous ?

  1. terraform state rm suivi d’un import.

  2. terraform state mv

  3. terraform state rename

  4. terraform state pull

Q11 : Quelle commande permet de retirer une ressource du suivi de Terraform sans la supprimer de votre fournisseur Cloud (AWS/Azure) ?

  1. terraform destroy -target

  2. terraform state rm

  3. terraform untaint

  4. terraform delete --soft

Q12 : À quoi sert terraform force-unlock [ID] ?

  1. À craquer le mot de passe d’un utilisateur.

  2. À débloquer manuellement le state si un processus Terraform s’est crashé et n’a pas libéré le verrou.

  3. À forcer l’accès à un bucket S3.

  4. À outrepasser les restrictions de sécurité du provider.


🏠 Section 6 : Workspaces & Cloud

Q13 : Quelle est la principale faiblesse des Workspaces par rapport à une isolation via Git + Backends séparés ?

  1. Ils sont plus lents.

  2. Ils partagent généralement les mêmes credentials et le même backend de stockage.

  3. On ne peut pas avoir de ressources différentes.

  4. Ils coûtent plus cher.

Q14 : Quelle commande permet d’extraire les données du state distant pour les consulter localement au format JSON ?

  1. terraform state pull | jq

  2. terraform show -json

  3. Les deux sont possibles.

  4. terraform state list -format=json


📥 Section 7 : Import & Utilitaires

Q15 : Que devez-vous obligatoirement faire AVANT de lancer terraform import ?

  1. Détruire la ressource existante.

  2. Écrire le bloc de configuration de la ressource dans votre code .tf.

  3. Désactiver le backend.

  4. Lancer un terraform destroy.

Q16 : Quelle commande permet de tester des fonctions Terraform (comme split(), abs()) ou de voir la valeur d’une variable sans faire un apply ?

  1. terraform test

  2. terraform console

  3. terraform echo

  4. terraform check

Q17 : Que signifie l’option -detailed-exitcode ?

  1. Elle affiche le log en couleur.

  2. Elle modifie le code de sortie (0, 1 ou 2) selon qu’il y a des changements, des erreurs ou rien à faire.

  3. Elle affiche l’heure exacte de chaque création.

  4. Elle génère un rapport PDF.


🔄 Section 8 : Questions Avancées & Maintenance

Q18 : Pourquoi les commandes taint et untaint sont-elles aujourd’hui dépréciées ?

  1. Parce qu’elles étaient trop dangereuses.

  2. Parce qu’elles ont été remplacées par l’option -replace lors du apply.

  3. Parce que Terraform n’autorise plus la recréation de ressources.

  4. Parce qu’elles corrompaient le state.

Q19 : Quelle commande permet de visualiser les dépendances entre vos ressources sous forme de graphique ?

  1. terraform visualize

  2. terraform tree

  3. terraform graph

  4. terraform show --graph

Q20 : Quelle variable d’environnement active le mode debug maximum dans les logs de Terraform ?

  1. DEBUG=true

  2. TF_LOG=TRACE

  3. TERRAFORM_VERBOSE=1

  4. LOG_LEVEL=DEBUG

Q21 : Que fait terraform providers lock ?

  1. Il empêche la modification des ressources.

  2. Il génère ou met à jour le fichier .terraform.lock.hcl pour garantir que toute l’équipe utilise les mêmes versions de plugins.

  3. Il verrouille le compte AWS.

  4. Il crypte les mots de passe.

Q22 : Quelle option globale permet de lancer une commande Terraform depuis un dossier différent sans se déplacer ?

  1. -path

  2. -chdir=RÉPERTOIRE

  3. -cwd

  4. -dir

Q23 : Comment afficher uniquement la valeur brute d’un output sans guillemets ni formatage ?

  1. terraform output -raw [nom]

  2. terraform output -json

  3. terraform show output

  4. terraform get output

Q24 : Quelle est la différence entre terraform login et terraform login [hostname] ?

  1. Aucune.

  2. La première utilise app.terraform.io, la seconde cible une instance Terraform Enterprise spécifique.

  3. La seconde est obligatoire.

  4. La première est pour les comptes gratuits uniquement.

Q25 : Que se passe-t-il si vous lancez terraform apply -auto-approve sans fichier de plan ?

  1. Terraform échoue car il a besoin d’un fichier .tfplan.

  2. Terraform génère un plan temporaire et l’applique immédiatement sans demander de confirmation.

  3. Terraform demande quand même une confirmation pour les ressources critiques.

  4. Terraform ne fait que rafraîchir le state.

Q26 : Quelle commande permet de voir les schémas de données attendus par les providers installés ?

  1. terraform providers schema

  2. terraform inspect

  3. terraform provider -show

  4. terraform debug schema

Q27 : Que fait l’option -parallelism=N ?

  1. Elle définit le nombre de cœurs CPU utilisés.

  2. Elle limite le nombre d’opérations simultanées sur les ressources (défaut : 10).

  3. Elle permet de déployer sur N régions à la fois.

  4. Elle définit le nombre de fichiers de config lus.

Q28 : Quelle commande permet d’afficher le message d’aide spécifique aux options de terraform state mv ?

  1. terraform help state mv

  2. terraform state mv -h

  3. terraform state -help

  4. terraform h state mv

Q29 : À quoi sert l’option -verify-plugins=false dans terraform init ?

  1. À accélérer l’initialisation.

  2. À ignorer la vérification des signatures numériques des plugins (déconseillé en prod).

  3. À utiliser des plugins écrits en Python.

  4. À désactiver la mise à jour des plugins.

Q30 : Vous voulez supprimer un workspace nommé staging. Quelle est la syntaxe ?

  1. terraform workspace rm staging

  2. terraform workspace delete staging

  3. terraform destroy workspace staging

  4. terraform workspace -delete staging


✅ Prochaines étapes

Tu peux maintenant copier ce bloc dans Obsidian. Veille à ce que le plugin Admonitions ou le support natif des Callouts soit activé pour profiter des blocs repliables.

Veux-tu que je fasse la même chose pour le cours Git que tu as partagé plus haut ?