2017-11-22 14 views
1

私はTerraformをかなり新しくしているので、問題は私が間違っていると思っています。Terraform - AWS - EBSボリュームが削除されないようにするにはどうすればよいですか?

個別のEBSボリュームが必要な場合があります。

aws ebs volume screenshot

:AWS内のボリュームは、彼らが保護「終了時に削除」していると言う、まだテラフォームがまだそれらを破壊慰める、

aws_instance 
aws_ebs_volume 
aws_volume_attachment 

インスタンスの起動:これらは、3つの別々のテラフォームのリソースとして定義されています

aws_instanceリソース定義内で 'block_device'マッピングを使用すると、終了できないようにすることができます。

https://www.terraform.io/docs/providers/aws/r/instance.html#delete_on_termination-1

しかし、これはオプションではebs_volumeリソースには表示されません。

https://www.terraform.io/docs/providers/aws/r/ebs_volume.html

がどのように私はテラフォームを止めない私のEBSボリュームを削除するから?

私はこれをやってみましたが、それはただテラフォームが実行してから仕事を破壊停止します

lifecycle = { 
    prevent_destroy = true 
    } 

おかげで一般的に

+0

あなたの 'terraform plan ... 'の出力を表示してください。 – Nickolay

+0

こんにちは - あなたは、作成または破棄、またはその両方から計画をしたいですか? 非常に大きな出力であり、多くのビジネスデータ(タグ、名前識別子)を含んでいるため、ビジネス識別可能なすべてのデータをそこから削除しようとしています。私と一緒に抱きしめてください。ありがとうございました 私はあなたが特定のセクションだけを知りたい場合。 – TristanP

+0

aws_instance破壊計画の出力を表示してください。 – Nickolay

答えて

0

を、terraform destroyは、すべてのリソースを破棄します。特定のリソースだけを破壊する場合は、たとえば次のように使用できます。terraform destroy -target=aws_instance.some_name

EBSボリュームの例では、aws_volume_attachmentリソースも破壊する必要があります。

1

これはドキュメントに記載されているとおりのものなので、Terraformはterraform destroyを許可しません。必要な場合は、他のリソースから自分のterraformディレクトリに移動することをお勧めします。

prevent_destroy(ブール) - このフラグは、指定されたリソースの破棄を、 に対して追加保護します。これがtrueに設定されている場合、このリソースの破棄を含む 計画はにエラー を返します。

0

あなたが誤って削除のためのあなたのEC2インスタンスを防ぎたい場合は、あなたが作成し、EC2インスタンスのリソースセクションで、以下のコマンドを使用することができ、

私が持っている

disable_api_termination =「true」を

それは正常に動作している時間の確認カップル。

ハッピーラーニング....

+2

ドキュメントにリンクすることで、この回答を改善することができます。さらに私の簡単な調査によれば、Terraformにはオープンバグがあり、このパラメータが期待どおりに機能しない可能性があります。 –

関連する問題