Ce module vous fait passer du « je comprends Terraform » au « j'écris une
configuration qui décrit mon infrastructure ». Vous y déclarez des
ressources, vous les paramétrez avec des variables et des fichiers
tfvars, vous exposez leurs résultats avec des outputs, et vous apprenez
dans quel ordre Terraform les crée. C'est le premier des quatre modules
d'écriture du niveau Terraform : les bases, et le seul d'entre eux qu'il
faut avoir suivi avant de créer votre première machine.
Prérequis. Avoir suivi le module Découvrir Terraform, qui pose le workflow, l'installation et la différence entre provider, resource et data source. Les exemples tournent surtout sur libvirt/KVM, mais les mécanismes valent pour tous les providers.
Pourquoi décrire avant de calculer ?
Section intitulée « Pourquoi décrire avant de calculer ? »Parce qu'une configuration se lit d'abord comme une liste d'objets et de valeurs, et que tout le reste du langage s'appuie sur elle. Le risque, quand on commence, n'est pas l'erreur de syntaxe : c'est de mélanger trop tôt la structure des blocs, les calculs et les répétitions, et de finir avec un fichier qui marche sans qu'on sache pourquoi.
Ce module se limite donc à ce qu'il faut pour décrire une infrastructure paramétrable, sans expression complexe ni boucle. Ces outils viennent après, une fois que vous avez vu vos premières ressources exister pour de vrai sur l'hyperviseur.
Comment déclarer les ressources et leurs providers ?
Section intitulée « Comment déclarer les ressources et leurs providers ? »Une ressource Terraform se déclare dans un bloc resource, qui porte un
type, un nom local et des attributs, et que fournit un provider épinglé. La
leçon Déclarer des ressources
apprend à lire et écrire ce bloc sans confondre type, nom local et
attributs, et à distinguer dans le plan une mise à jour en place d'un
remplacement.
Deux leçons facultatives approfondissent le provider lui-même. Le guide sur
les providers
explique required_providers et les alias. Les
contraintes de version
encadrent les versions de Terraform, des providers et des modules, et
montrent ce que le lock file verrouille réellement. Elles comptent aussi
pour les fonctions de provider : ces fonctions dépendent de la version du provider installée
(une fonction n'existe que si cette version la fournit) et exigent Terraform
1.8 ou plus récent.
Comment paramétrer une configuration sans dupliquer les valeurs ?
Section intitulée « Comment paramétrer une configuration sans dupliquer les valeurs ? »Les variables font entrer les valeurs, les fichiers tfvars les changent
sans toucher au code, et les outputs exposent ce que le projet a produit.
Les variables Terraform
déclarent des entrées typées et validées, refusées avant tout appel au
provider quand elles sont fausses. Les
fichiers tfvars
passent des valeurs différentes selon l'environnement, et fixent l'ordre
de précédence entre leurs sources.
En sortie, les outputs
exposent ce que le projet a créé après l'apply, pour vous comme pour un
autre outil. Entre les deux, les
locals,
facultatifs à ce stade, centralisent une valeur réutilisée au lieu de
répéter la même expression partout.
Dans quel ordre Terraform crée-t-il les ressources ?
Section intitulée « Dans quel ordre Terraform crée-t-il les ressources ? »Terraform déduit l'ordre de création des références entre ressources, et
depends_on ne sert que lorsqu'aucune référence ne l'exprime. La leçon
depends_on
montre comment le graphe de dépendances se construit, pourquoi une
référence suffit dans la plupart des cas, et quel cas rare exige une
dépendance explicite. Elle clôt le module parce que la machine et le
réseau de votre première infrastructure en dépendent directement.
Les modules suivants du niveau prennent le relais : Premières infras applique ces notions sur une vraie machine KVM, puis viennent les calculs, les répétitions et les données sensibles.
À retenir
Section intitulée « À retenir »- Ce module décrit une infrastructure : ressources, providers, variables,
fichiers
tfvars, outputs et ordre de création. - Une ressource se lit par son type, son nom local et ses attributs.
- Une variable typée et validée refuse une valeur fausse avant tout appel au provider.
- Un fichier
tfvarschange les valeurs sans toucher au code. - Une référence entre ressources suffit presque toujours à ordonner leur
création ;
depends_onreste l'exception. - Les leçons sur les providers, les contraintes de version et les locals sont des approfondissements facultatifs.