Que Faire si j’interromps un ‘terraform destroy’ et que je ne peux plus lancer mes commandes à cause du verrou (lock) ?

Que Faire si j’interromps un ‘terraform destroy’ et que je ne peux plus lancer mes commandes à cause du verrou (lock) ?

Que Faire si J’ai Déjà Interrompu un terraform destroy et Que Je Ne Peux Plus Lancer de Commandes à Cause du Verrouillage ?

Si vous avez interrompu une commande terraform destroy en cours et que vous rencontrez le message d’erreur suivant :

Error: Error acquiring the state lock

Voici quelques étapes pour essayer de réparer la situation :

  1. Libération du verrou :
  • Utilisez la commande terraform force-unlock pour libérer le verrou. Vous aurez besoin de l’ID du verrou, que vous pouvez trouver dans les messages d’erreur ou dans le backend de stockage (par exemple, S3 pour AWS).
   terraform force-unlock <LOCK_ID>
  1. Vérifiez l’état actuel :
  • Exécutez terraform state list pour voir les ressources encore présentes dans l’état Terraform.
  • Exécutez terraform show pour examiner l’état actuel du plan Terraform.
  1. Synchronisez manuellement l’état :
  • Si certaines ressources ont été détruites mais apparaissent toujours dans l’état Terraform, supprimez manuellement ces ressources de l’état en utilisant terraform state rm <RESOURCE>.
  • Par exemple :
   terraform state rm aws_instance.example
  1. Planifiez de nouveau :
  • Exécutez terraform plan pour voir ce que Terraform prévoit de faire. Cela vous permettra de vérifier les différences entre l’état réel et l’état attendu.
  1. Reprenez le terraform destroy :
  • Si vous souhaitez terminer le processus de destruction, exécutez à nouveau terraform destroy. Terraform continuera à partir de l’état actuel et tentera de détruire les ressources restantes.
  1. Corrigez manuellement :
  • Si certaines ressources ne peuvent pas être détruites par Terraform, supprimez-les manuellement via la console de votre fournisseur de cloud (par exemple, AWS, Azure, GCP).
  1. Rafraîchissez l’état :
  • Une fois toutes les ressources supprimées, exécutez terraform refresh pour mettre à jour l’état Terraform avec la situation réelle.

les commandes :

terraform state list
terraform state rm aws_instance.example
terraform plan
terraform destroy
terraform refresh

Précautions supplémentaires

  • Sauvegardez votre état actuel :
  • Avant de faire des modifications manuelles, sauvegardez votre état actuel en utilisant : terraform state pull > terraform.tfstate.backup
  • Vérifiez les dépendances :
  • Certaines ressources peuvent avoir des dépendances, assurez-vous de gérer ces dépendances correctement lors de la suppression manuelle.
  • Utilisez le mode interactif :
  • Pour éviter des interruptions inattendues, exécutez les commandes Terraform en mode interactif pour confirmer chaque action.

En suivant ces étapes, vous devriez pouvoir réparer l’état Terraform après une interruption de la commande terraform destroy.

Laisser un commentaire