{"id":81,"date":"2024-07-17T11:38:13","date_gmt":"2024-07-17T09:38:13","guid":{"rendered":"https:\/\/mysterdev.com\/?p=81"},"modified":"2024-07-17T11:44:50","modified_gmt":"2024-07-17T09:44:50","slug":"que-faire-si-jinterromps-un-terraform-destroy-et-que-je-ne-peux-plus-lancer-mes-commandes-a-cause-du-verrou-lock","status":"publish","type":"post","link":"https:\/\/mysterdev.com\/index.php\/2024\/07\/17\/que-faire-si-jinterromps-un-terraform-destroy-et-que-je-ne-peux-plus-lancer-mes-commandes-a-cause-du-verrou-lock\/","title":{"rendered":"Que Faire si j&#8217;interromps un &#8216;terraform destroy&#8217; et que je ne peux plus lancer mes commandes \u00e0 cause du verrou (lock) ?"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Que Faire si J&#8217;ai D\u00e9j\u00e0 Interrompu un <code>terraform destroy<\/code> et Que Je Ne Peux Plus Lancer de Commandes \u00e0 Cause du Verrouillage ?<\/h3>\n\n\n\n<p>Si vous avez interrompu une commande <code>terraform destroy<\/code> en cours et que vous rencontrez le message d&#8217;erreur suivant :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>Error: Error acquiring the state lock<\/code><\/code><\/pre>\n\n\n\n<p>Voici quelques \u00e9tapes pour essayer de r\u00e9parer la situation :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Lib\u00e9ration du verrou :<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Utilisez la commande <code>terraform force-unlock<\/code> pour lib\u00e9rer le verrou. Vous aurez besoin de l&#8217;ID du verrou, que vous pouvez trouver dans les messages d&#8217;erreur ou dans le backend de stockage (par exemple, S3 pour AWS).<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>   terraform force-unlock &lt;LOCK_ID&gt;<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>V\u00e9rifiez l&#8217;\u00e9tat actuel :<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ex\u00e9cutez <code>terraform state list<\/code> pour voir les ressources encore pr\u00e9sentes dans l&#8217;\u00e9tat Terraform.<\/li>\n\n\n\n<li>Ex\u00e9cutez <code>terraform show<\/code> pour examiner l&#8217;\u00e9tat actuel du plan Terraform.<\/li>\n<\/ul>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Synchronisez manuellement l&#8217;\u00e9tat :<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si certaines ressources ont \u00e9t\u00e9 d\u00e9truites mais apparaissent toujours dans l&#8217;\u00e9tat Terraform, supprimez manuellement ces ressources de l&#8217;\u00e9tat en utilisant <code>terraform state rm &lt;RESOURCE><\/code>.<\/li>\n\n\n\n<li>Par exemple :<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>   terraform state rm aws_instance.example<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Planifiez de nouveau :<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ex\u00e9cutez <code>terraform plan<\/code> pour voir ce que Terraform pr\u00e9voit de faire. Cela vous permettra de v\u00e9rifier les diff\u00e9rences entre l&#8217;\u00e9tat r\u00e9el et l&#8217;\u00e9tat attendu.<\/li>\n<\/ul>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Reprenez le <code>terraform destroy<\/code> :<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si vous souhaitez terminer le processus de destruction, ex\u00e9cutez \u00e0 nouveau <code>terraform destroy<\/code>. Terraform continuera \u00e0 partir de l&#8217;\u00e9tat actuel et tentera de d\u00e9truire les ressources restantes.<\/li>\n<\/ul>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Corrigez manuellement :<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si certaines ressources ne peuvent pas \u00eatre d\u00e9truites par Terraform, supprimez-les manuellement via la console de votre fournisseur de cloud (par exemple, AWS, Azure, GCP).<\/li>\n<\/ul>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Rafra\u00eechissez l&#8217;\u00e9tat :<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Une fois toutes les ressources supprim\u00e9es, ex\u00e9cutez <code>terraform refresh<\/code> pour mettre \u00e0 jour l&#8217;\u00e9tat Terraform avec la situation r\u00e9elle.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">les commandes :<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>terraform state list\nterraform state rm aws_instance.example\nterraform plan\nterraform destroy\nterraform refresh<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Pr\u00e9cautions suppl\u00e9mentaires<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Sauvegardez votre \u00e9tat actuel :<\/strong><\/li>\n\n\n\n<li>Avant de faire des modifications manuelles, sauvegardez votre \u00e9tat actuel en utilisant : <code>terraform state pull > terraform.tfstate.backup<\/code><\/li>\n\n\n\n<li><strong>V\u00e9rifiez les d\u00e9pendances :<\/strong><\/li>\n\n\n\n<li>Certaines ressources peuvent avoir des d\u00e9pendances, assurez-vous de g\u00e9rer ces d\u00e9pendances correctement lors de la suppression manuelle.<\/li>\n\n\n\n<li><strong>Utilisez le mode interactif :<\/strong><\/li>\n\n\n\n<li>Pour \u00e9viter des interruptions inattendues, ex\u00e9cutez les commandes Terraform en mode interactif pour confirmer chaque action.<\/li>\n<\/ul>\n\n\n\n<p>En suivant ces \u00e9tapes, vous devriez pouvoir r\u00e9parer l&#8217;\u00e9tat Terraform apr\u00e8s une interruption de la commande <code>terraform destroy<\/code>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Que Faire si J&#8217;ai D\u00e9j\u00e0 Interrompu un terraform destroy et Que Je Ne Peux Plus Lancer de Commandes \u00e0 Cause du Verrouillage ? Si vous avez interrompu une commande terraform destroy en cours et que vous rencontrez le message d&#8217;erreur suivant : Voici quelques \u00e9tapes pour essayer de r\u00e9parer la situation : les commandes :<\/p><\/div>\n<div class=\"blog-btn\"><a href=\"https:\/\/mysterdev.com\/index.php\/2024\/07\/17\/que-faire-si-jinterromps-un-terraform-destroy-et-que-je-ne-peux-plus-lancer-mes-commandes-a-cause-du-verrou-lock\/\" class=\"home-blog-btn\">Read More<\/a><\/p>\n","protected":false},"author":2,"featured_media":84,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,2],"tags":[],"class_list":["post-81","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-technologies"],"_links":{"self":[{"href":"https:\/\/mysterdev.com\/index.php\/wp-json\/wp\/v2\/posts\/81","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mysterdev.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mysterdev.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mysterdev.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mysterdev.com\/index.php\/wp-json\/wp\/v2\/comments?post=81"}],"version-history":[{"count":4,"href":"https:\/\/mysterdev.com\/index.php\/wp-json\/wp\/v2\/posts\/81\/revisions"}],"predecessor-version":[{"id":86,"href":"https:\/\/mysterdev.com\/index.php\/wp-json\/wp\/v2\/posts\/81\/revisions\/86"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mysterdev.com\/index.php\/wp-json\/wp\/v2\/media\/84"}],"wp:attachment":[{"href":"https:\/\/mysterdev.com\/index.php\/wp-json\/wp\/v2\/media?parent=81"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mysterdev.com\/index.php\/wp-json\/wp\/v2\/categories?post=81"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mysterdev.com\/index.php\/wp-json\/wp\/v2\/tags?post=81"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}