0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Leçon

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 production

Planifier 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 tfplan

Inspecter l’état

Vous pouvez interroger l’état pour voir ce que Terraform suit.

  • terraform state list — liste les ressources gérées
  • terraform 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.web

Importer 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-bucket

Gé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 ; plan dé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

  1. IaC avec Terraform et GitHub Actions
  2. Gestion des ressources infonuagiques
  3. Automatisation des mises à jour de l’infrastructure
  4. Gérer l’état Terraform et les services dorsaux distants
← Retour à CI/CD with GitHub Actions & DevOps Pipelines