Gérer l’état Terraform et les services dorsaux distants
Comprenez l’état Terraform, configurez des services dorsaux distants sécurisés, gérez le verrouillage de l’état et évitez sa corruption dans les pipelines IaC collaboratifs.
Gérer l’état Terraform et les services dorsaux distants est une leçon CI/CD with GitHub Actions & DevOps Pipelines gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage CI/CD with GitHub Actions & DevOps Pipelines, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours CI/CD with GitHub Actions & DevOps Pipelines comprend 4 leçons au total.
Qu’est-ce que l’état Terraform
Terraform enregistre ce qu’il a créé dans un fichier d’état (terraform.tfstate). Il fait le lien entre votre configuration et les ressources réelles du cloud.
Sans état, Terraform ne saurait pas quelles ressources existent déjà et pourrait créer des doublons ou ne pas parvenir à effectuer une mise à jour.
Pourquoi l’état local pose problème aux équipes
Par défaut, l’état est stocké sur votre disque local. Cela devient problématique avec une équipe ou dans la CI :
- Les autres personnes ne peuvent pas voir votre état
- Des exécutions simultanées peuvent endommager le fichier
- Le fichier contient des secrets en clair et pourrait être validé par erreur
La solution consiste à utiliser une infrastructure dorsale distante.
Infrastructures dorsales distantes
Une infrastructure dorsale distante stocke l’état dans un emplacement partagé et durable, comme un compartiment S3, Azure Blob, GCS ou Terraform Cloud.
Ainsi, chaque exécution du pipeline dispose d’une source unique de vérité pour l’infrastructure actuelle.
terraform {
backend "s3" {
bucket = "my-tf-state"
key = "prod/terraform.tfstate"
region = "us-east-1"
}
}Verrouillage de l’état
Si deux exécutions du pipeline appliquent des changements en même temps, elles peuvent endommager l’état. Le verrouillage de l’état empêche cela en n’autorisant qu’une seule écriture à la fois.
Avec l’infrastructure dorsale S3, une table DynamoDB fournit le verrou. Terraform Cloud verrouille automatiquement l’état.
backend "s3" {
bucket = "my-tf-state"
key = "prod/terraform.tfstate"
dynamodb_table = "tf-locks"
}Chiffrement de l’état
Les fichiers d’état contiennent souvent des valeurs sensibles, comme des mots de passe et des clés. Chiffrez toujours l’état au repos.
Pour l’infrastructure dorsale S3, activez le chiffrement du compartiment et définissez encrypt = true dans la configuration de l’infrastructure dorsale.
backend "s3" {
bucket = "my-tf-state"
key = "prod/terraform.tfstate"
encrypt = true
}Espaces de travail pour les environnements
Les espaces de travail Terraform permettent à une configuration de gérer plusieurs fichiers d’état, un par environnement.
Basculez de l’un à l’autre afin que la préproduction et la production ne partagent jamais le même état.
terraform workspace new staging
terraform workspace select productionPlanifier et appliquer dans la CI
Dans un pipeline, exécutez terraform plan pour prévisualiser les changements, souvent sur les demandes de fusion, puis terraform apply pour les appliquer, lors de la fusion dans la branche principale.
Enregistrez le plan dans un fichier afin que l’application utilise exactement ce qui a été examiné.
terraform plan -out=tfplan
terraform apply -auto-approve tfplanInspecter l’état
Vous pouvez interroger l’état pour voir ce que Terraform suit.
terraform state list— liste les ressources géréesterraform state show <addr>— affiche les détails d’une ressource
Évitez de modifier l’état manuellement ; utilisez plutôt les commandes.
terraform state list
terraform state show aws_instance.webImporter des ressources existantes
Si une ressource a été créée en dehors de Terraform, placez-la sous sa gestion avec terraform import au lieu de la recréer.
Vous éviterez ainsi une duplication destructive lors de l’adoption de l’IaC sur une infrastructure existante.
terraform import aws_s3_bucket.logs my-existing-bucketGérer la dérive
La dérive se produit lorsqu’une personne modifie manuellement l’infrastructure, de sorte que la réalité ne correspond plus à l’état.
Exécutez régulièrement terraform plan pour détecter la dérive, puis réappliquez la configuration pour restaurer l’état ou mettez la configuration à jour pour qu’elle corresponde à la réalité.
Ne validez jamais l’état
Même avec une infrastructure dorsale distante, assurez-vous que les fichiers d’état locaux et les fichiers de plan sont ignorés par Git. Ils contiennent des secrets.
Un bon fichier .gitignore vous protège contre les fuites accidentelles.
# .gitignore
*.tfstate
*.tfstate.*
tfplan
.terraform/Vérification rapide
Évaluez votre compréhension de l’état Terraform.
Récapitulatif
Vous avez appris à gérer l’état Terraform en toute sécurité.
- L’état relie la configuration aux ressources réelles ; ne le modifiez jamais manuellement
- Les infrastructures dorsales distantes partagent l’état entre l’équipe et la CI
- Le verrouillage et le chiffrement protègent contre les corruptions et les fuites
- Les espaces de travail isolent les environnements ;
plandétecte la dérive
Une gestion solide de l’état constitue la base de pipelines IaC fiables.
Questions Fréquemment Posées
La leçon « Gérer l’état Terraform et les services dorsaux distants » est-elle gratuite ?
Oui — le texte complet de « Gérer l’état Terraform et les services dorsaux distants » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours CI/CD with GitHub Actions & DevOps Pipelines, passe à CoddyKit PRO. Le cours CI/CD with GitHub Actions & DevOps Pipelines comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Gérer l’état Terraform et les services dorsaux distants » ?
Comprenez l’état Terraform, configurez des services dorsaux distants sécurisés, gérez le verrouillage de l’état et évitez sa corruption dans les pipelines IaC collaboratifs. Tu pratiques CI/CD with GitHub Actions & DevOps Pipelines avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer CI/CD with GitHub Actions & DevOps Pipelines ?
Aucune expérience préalable n'est requise. CI/CD with GitHub Actions & DevOps Pipelines sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Gérer l’état Terraform et les services dorsaux distants » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon CI/CD with GitHub Actions & DevOps Pipelines ?
Oui. Chaque leçon CI/CD with GitHub Actions & DevOps Pipelines inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- IaC avec Terraform et GitHub Actions
- Gestion des ressources infonuagiques
- Automatisation des mises à jour de l’infrastructure
- Gérer l’état Terraform et les services dorsaux distants