Synchronise le fichier de state avec l’état réel de l’infrastructure, sans créer ni détruire de ressources.
Commande déconseillée depuis Terraform 0.15.4 — elle est toujours fonctionnelle mais remplacée par le mode
-refresh-onlydeplan/apply, plus sûr car il demande une confirmation avant d’écrire dans le state.
Options principales
| Option | Description |
|---|---|
-target=RESSOURCE | Rafraîchir une ressource spécifique uniquement |
-var="key=value" | Passer une variable inline |
-var-file=FICHIER | Fichier de variables |
-lock=false | Désactiver le verrouillage (dangereux) |
-compact-warnings | Réduire les avertissements |
Exemples
# Synchroniser tout le state avec l'infrastructure réelle
terraform refresh
# Rafraîchir une seule ressource
terraform refresh -target=aws_instance.web
# Avec des variables
terraform refresh -var="env=prod"⚠️ Pourquoi c’est déconseillé
terraform refresh écrit directement dans le state sans montrer de plan ni demander de confirmation :
infrastructure réelle → state (écriture directe, sans validation)
Si l’infrastructure a divergé de manière inattendue (ressource supprimée manuellement, attribut modifié), le state est mis à jour immédiatement et sans possibilité de revenir en arrière facilement.
✅ Équivalent moderne : -refresh-only
# Étape 1 : voir ce qui a changé (sans écrire)
terraform plan -refresh-only
# Exemple de sortie :
# ~ aws_instance.web will be updated in-place
# ~ tags = { "Name" = "web" → "web-manual" }
#
# Plan: 0 to add, 1 to change, 0 to destroy.
# Note: The plan only updates Terraform state and will not change real infrastructure.
# Étape 2 : confirmer la mise à jour du state
terraform apply -refresh-only
# Ou en une seule étape avec auto-approve
terraform apply -refresh-only -auto-approveAvantages :
- Le plan est visible avant confirmation
- Possibilité d’annuler si le diff est inattendu
- S’intègre naturellement dans le workflow
plan → apply
Cas d’usage typiques
# Après des modifications manuelles dans la console AWS/GCP/Azure
terraform plan -refresh-only # voir les diffs
terraform apply -refresh-only # mettre le state à jour
# Avant un plan pour s'assurer que le state est à jour
terraform plan # -refresh est activé par défaut dans plan/apply
# Désactiver le refresh automatique (plus rapide, moins fiable)
terraform plan -refresh=falseNote :
terraform planetterraform applyfont un refresh automatique avant chaque exécution.-refresh-onlyest donc utile uniquement quand on veut explicitement mettre à jour le state sans appliquer d’autres changements.
En relation avec
- State — Vue d’ensemble — hub gestion du state
- terraform plan —
-refresh-onlyet-refresh=false - terraform apply —
-refresh-only - Commandes déconseillées — contexte de la dépréciation