Valide la syntaxe et la cohérence logique des fichiers Terraform sans accéder à l’infrastructure ni au backend.
Différent de
terraform plan:validatevérifie la syntaxe HCL, les types et les références internes. Il ne consulte pas les APIs cloud.
Options principales
| Option | Défaut | Description |
|---|---|---|
-backend=true|false | true | Valide aussi la configuration backend (nécessite des credentials) |
-json | non | Sortie en JSON (pour parsing en CI) |
Exemples
# Validation simple
terraform validate
# Validation sans accès au backend (pas de credentials requis)
terraform validate -backend=false
# Sortie JSON pour parsing CI
terraform validate -jsonSortie JSON :
{
"valid": true,
"error_count": 0,
"warning_count": 0,
"diagnostics": []
}Ce que validate vérifie
✅ Vérifié :
- Syntaxe HCL valide
- Types des attributs corrects (string, number, bool, list, map)
- Références à des ressources existantes dans la configuration
- Bloc requis présents (required_providers, etc.)
- Expressions valides
❌ Non vérifié :
- Existence des ressources dans l'infrastructure réelle
- Validité des valeurs (AMI existante, région valide, etc.)
- Accès au backend
- Variables non définies (si passées en dehors de .tf)
-backend=false — cas d’usage clé
Voir Backend — Configuration et option pour le détail, mais en résumé :
# Sans -backend=false : Terraform tente de se connecter au backend
# → Erreur si pas de credentials AWS/GCP/Azure disponibles
# Avec -backend=false : validation syntaxique pure
# → Parfait pour la CI sans credentials, le dev local, les tests de modules
terraform validate -backend=false # ← recommandé en CI pour les checks rapides
terraform plan # ← pour la validation complète avec credentialsWorkflow qualité recommandé
# 1. Formater
terraform fmt -check -recursive
# 2. Valider (syntaxe, sans backend)
terraform validate -backend=false
# 3. Plan (validation complète avec credentials)
terraform plan -out=plan.tfplan
# 4. Apply
terraform apply plan.tfplanEn relation avec
- Qualité et code — Vue d’ensemble — hub qualité
- terraform fmt — formater avant de valider
- terraform plan — validation complète avec credentials
- Backend — Configuration et option — option
-backend=falseen détail