Aller au contenu
English
Compte : non connecté, synchronisation possible Mon apprentissage
Selectionner le thème
English

Écrire du code Terraform : décrire l'infrastructure

  • 20 min

Par mis à jour le

Améliorer cette page

Logo Terraform

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.

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.

  • 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 tfvars change les valeurs sans toucher au code.
  • Une référence entre ressources suffit presque toujours à ordonner leur création ; depends_on reste l'exception.
  • Les leçons sur les providers, les contraintes de version et les locals sont des approfondissements facultatifs.

Ce projet vous est utile ?

Les guides, formations, quiz et labs restent gratuits. Si vous les utilisez régulièrement, vous pouvez contribuer à leur maintenance et à leur développement.

Devenir membre de soutien (nouvel onglet) Soutenir une fois (nouvel onglet) En savoir plus

Suivez aussi le projet sur LinkedIn