Objectifs
- Distinguer un bloc HCL de ses arguments.
- Utiliser strings, numbers, booleans, lists et maps.
- Lire une adresse de resource et une référence à un attribut.
- Commenter et organiser une configuration simple.
Comprendre HashiCorp Configuration Language
HCL, HashiCorp Configuration Language, est le langage utilisé par Terraform. Sa syntaxe est conçue pour décrire des objets et leurs relations de manière lisible.
Un fichier .tf contient des blocs. Chaque bloc possède un type, parfois des labels, puis un corps composé d’arguments, d’expressions et éventuellement de blocs imbriqués.
Blocs, labels et arguments
Dans resource "TYPE" "LOCAL_NAME", TYPE indique l’objet du provider et LOCAL_NAME est le nom interne choisi dans ce module. Les lignes bucket et region sont des arguments.
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
}
}
}
provider "aws" {
region = "eu-west-3"
}
resource "aws_s3_bucket" "example" {
bucket = "example-training-bucket"
}Le nom local example n’est pas le nom distant du bucket. Il sert à former l’adresse Terraform aws_s3_bucket.example.
Valeurs et expressions
HCL accepte des chaînes, nombres, booléens et collections. Une expression peut être une valeur littérale, un calcul, une condition ou une référence vers une variable, une ressource ou un module.
locals {
environment = "dev"
replicas = 2
enabled = true
zones = ["eu-west-3a", "eu-west-3b"]
tags = {
Environment = "dev"
ManagedBy = "Terraform"
}
}aws_s3_bucket.example.idCommentaires et formatage
Les commentaires expliquent une décision utile, sans répéter chaque ligne. HCL accepte # et // pour une ligne, ainsi que /* ... */ pour un commentaire sur plusieurs lignes.
# Bucket pédagogique
// Cette valeur n’est pas un secret
/* Bloc temporaire
à supprimer après la formation */terraform fmt
terraform validateErreur fréquente : confondre nom local et nom distant
Mini résumé
- HCL organise la configuration en blocs, labels et arguments.
- Les expressions manipulent des valeurs et des références.
- resource "TYPE" "LOCAL_NAME" définit l’adresse locale d’une resource.
- terraform fmt applique le format canonique des fichiers.
Outils associés
Générer une configuration HCL
Utilisez Terraform HCL Generator pour préparer localement une base AWS, Azure, GCP ou Docker, puis relisez-la avant utilisation.
Ouvrir l’outilMini quiz
Trois questions pour vérifier les notions essentielles de la leçon.