terraform init
Objectif
Initialise un répertoire de travail Terraform en :
- Téléchargeant les providers nécessaires
- Initialisant le backend pour stocker l’état
- Installant les modules requis
Utilisation
Quand l’utiliser
- Lors de la première utilisation d’une configuration
- Après l’ajout de nouveaux providers ou modules
- Après un changement de backend
- En cas de corruption du répertoire .terraform
terraform plan
Objectif
Crée un plan d’exécution détaillant :
- Les ressources à créer
- Les ressources à modifier
- Les ressources à supprimer
- Les dépendances entre les changements
Utilisation
Quand l’utiliser
- Avant chaque apply pour vérifier les changements
- Pour documenter les modifications prévues
- Pour détecter des problèmes potentiels
- Pour estimer l’impact des changements
terraform apply
Objectif
Applique les changements pour atteindre l’état désiré en :
- Créant les nouvelles ressources
- Modifiant les ressources existantes
- Supprimant les ressources obsolètes
- Mettant à jour l’état Terraform
Utilisation
Quand l’utiliser
- Pour déployer une nouvelle infrastructure
- Pour modifier une infrastructure existante
- Après validation d’un plan
- Pour corriger des divergences d’état
terraform destroy
Objectif
Supprime toutes les ressources gérées par Terraform en :
- Détruisant les ressources dans l’ordre correct
- Nettoyant l’état Terraform
- Libérant les ressources associées
Utilisation
Quand l’utiliser
- Pour nettoyer un environnement de test
- Pour supprimer une infrastructure complète
- Pour redéployer depuis zéro
- Pour libérer des ressources coûteuses
Bonnes pratiques
-
Sécurité
- Toujours examiner le plan avant apply
- Sauvegarder l’état avant les opérations majeures
- Utiliser des backends sécurisés pour l’état
- Limiter l’accès aux credentials
-
Workflow
- init → plan → apply
- Versionner les configurations
- Utiliser des workspaces pour isoler les environnements
- Documenter les changements majeurs
-
Automatisation
- Intégrer dans des pipelines CI/CD
- Automatiser les tests
- Maintenir des sauvegardes
- Utiliser des variables d’environnement
-
Maintenance
- Nettoyer régulièrement les anciens états
- Mettre à jour les providers
- Vérifier les dépendances
- Surveiller les coûts