Fiche de référence Terraform - commandes utiles et exemples
La liste de toutes les commandes Terraform
Voici une fiche de référence Terraform complète avec des commandes essentielles, des éléments de configuration, la gestion des ressources, des modules, des variables, la gestion de l’état et des meilleures pratiques.
Terraform est un outil open-source d’infrastructure-as-code (IaC) développé par HashiCorp, qui permet aux utilisateurs de définir et de provisionner une infrastructure auprès de plusieurs fournisseurs de cloud (par exemple, AWS, Azure, GCP) en utilisant des fichiers de configuration déclaratifs. Son objectif principal est d’automatiser le provisionnement de l’infrastructure, d’assurer la cohérence et de réduire les erreurs manuelles. Terraform prend en charge les flux de travail multi-cloud, modulaires et basés sur l’état, ce qui en fait un pilier des pratiques DevOps modernes.
Pour plus d’outils et de flux de travail pour les développeurs, consultez Outils pour développeurs : Le guide complet des flux de travail de développement modernes.

Avantages clés de Terraform :
- Syntaxe déclarative : Définissez les états d’infrastructure souhaités dans le code.
- Indépendance du fournisseur : Fonctionne avec AWS, Azure, GCP, Kubernetes et plus encore.
- Gestion de l’état : Suit les modifications de l’infrastructure pour éviter les conflits.
Guide d’installation et de configuration
https://developer.hashicorp.com/terraform/tutorials#get-started
Le processus d’installation de Terraform est assez simple.
-
Linux (Ubuntu/Debian) :
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list sudo apt update && sudo apt install terraform -
Windows (WSL) :
wget -O terraform.zip https://releases.hashicorp.com/terraform/1.5.5/terraform_1.5.5_windows_amd64.zip unzip terraform.zip -
macOS (Homebrew) :
brew install terraform
Pour améliorer la productivité dans le terminal lors de l’utilisation de Terraform, consultez Raccourcis clavier Ubuntu : Fiche de référence complète.
Vérification
terraform --version
Commandes CLI Terraform
Voici la liste de toutes les commandes Terraform :
| Commande | Description |
|---|---|
terraform init |
Initialiser un nouveau ou un répertoire de configuration existant |
terraform validate |
Vérifier si la configuration est valide |
terraform plan |
Afficher le plan d’exécution sans apporter de modifications |
terraform apply |
Appliquer les modifications nécessaires pour atteindre l’état souhaité |
terraform destroy |
Détruire l’infrastructure gérée par Terraform |
terraform fmt |
Reformater les fichiers de configuration selon le style standard |
terraform show |
Afficher l’état actuel ou le plan |
terraform refresh |
Mettre à jour l’état avec l’infrastructure réelle |
terraform providers |
Afficher les fournisseurs utilisés dans la configuration |
terraform graph |
Visualiser les dépendances des ressources sous forme de graphe |
terraform workspace list |
Lister tous les espaces de travail disponibles |
terraform workspace new |
Créer un nouvel espace de travail |
terraform workspace select |
Basculer vers un espace de travail spécifié |
terraform workspace show |
Afficher le nom de l’espace de travail actuel |
terraform workspace delete |
Supprimer un espace de travail spécifié |
terraform output |
Afficher les valeurs de sortie du fichier d’état |
terraform import |
Importer une ressource existante dans Terraform |
terraform taint |
Marquer une ressource pour une recréation au prochain apply |
terraform untaint |
Retirer la marque “tainted” d’une ressource |
terraform state list |
Lister les ressources dans le fichier d’état |
terraform state show |
Afficher les attributs d’une seule ressource dans l’état |
Essentiels de configuration
Extensions de fichiers
.tf: Fichiers de configuration principaux (syntaxe HCL).tfvars: Valeurs de variables
Types de blocs Terraform
- Exemple de fournisseur
provider "aws" { region = "us-east-1" } - Exemple de ressource
resource "aws_instance" "web" { ami = "ami-0abcdef" instance_type = "t2.micro" } - Exemple de variable
variable "instance_count" { type = number default = 2 } - Exemple de sortie
output "instance_ip" { value = aws_instance.web.public_ip } - Exemple de module
module "vpc" { source = "./modules/vpc" cidr_block = var.vpc_cidr }
Travail avec les variables
- Déclaration de variables
variable "region" { description = "Région AWS" default = "us-east-1" } - Attribution de valeurs
- CLI :
terraform apply -var="region=us-west-2" - Fichier tfvars :
terraform apply -var-file="prod.tfvars"
- CLI :
- Types :
string,number,bool,list,map,object
Gestion de l’état
- Fichier d’état :
terraform.tfstate - État distant (Exemple S3)
backend "s3" { bucket = "my-tf-state" key = "state.tfstate" region = "us-east-1" } - Afficher l’état :
terraform show
terraform state list
Boucles et conditionnels
- Count
resource "aws_instance" "web" { count = 3 ... } - For_each
resource "aws_s3_bucket" "b" { for_each = var.bucket_names bucket = each.value } - Conditionnels
instance_type = var.env == "prod" ? "t2.large" : "t2.micro"
Fonctions
- Interpolation de chaînes :
resource "aws_s3_bucket" "example" { bucket = "my-bucket-${var.env}" } - Exemples de liste et de map :
locals { my_map = { a = 1, b = 2 } }
Provisionneurs
Utilisés pour le bootstrapping des ressources. Exemple :
resource "aws_instance" "web" {
...
provisioner "local-exec" {
command = "echo Instance created"
}
}
Meilleures pratiques
- Contrôle de version de tous les fichiers
.tf - Verrouiller les versions des fournisseurs pour assurer des déploiements cohérents
- Backend distant pour la gestion de l’état (S3, Azure Blob, etc.)
- Chiffrer les fichiers d’état dans les backends distants
- Modulariser l’infrastructure en utilisant des modules réutilisables
- Documenter vos configurations
- Tester en staging avant la production
Références supplémentaires
- Aide :
terraform --helpou[commande] --helppour l’aide spécifique à une commande - Débogage : Définir
TF_LOG=INFOouTF_LOG=DEBUGpour des journaux verbeux - Mise en forme :
terraform fmt - Encodage : Pour les opérations d’encodage/décodage Base64, consultez Encodage - décodage Base64 sur Windows, Linux et Mac
Cette fiche de référence fournit une référence d’accès rapide aux aspects les plus courants et avancés de l’utilisation de Terraform - des commandes aux meilleures pratiques - la rendant pratique aussi bien pour les débutants que pour les utilisateurs avancés. Passez une excellente journée !
Liens utiles
- https://developer.hashicorp.com/terraform
- Fiche de référence Docker
- Fiche de référence Docker Compose - Commandes les plus utiles avec exemples
- Fiche de référence Kubernetes
- Déployer un projet Flutter avec backend vers AWS Amplify
- Déployer un site web généré par Hugo vers AWS S3
- Performance AWS Lambda : JavaScript vs Python vs Golang
- Lambda en couches avec AWS SAM et Python
- AWS SAM + AWS SQS + Python PowerTools
- Minio comme alternative à Aws S3. Aperçu et installation de Minio