2017-09-05 55 views
0

我不確定terraform應該如何在這種情況下的行爲:Terraform-AWS 0.10.3:無法摧毀集羣實例已刪除AMI

  1. 我們帶來了實例的集羣,一個其中有一個ami在羣集運行時被刪除。
  2. 我們嘗試銷燬此羣集,並且terraform在刷新階段失敗,因爲嘗試查找ami的查詢失敗。

在我看來,爲了銷燬一個集羣,實體已經存在,所以不應該再需要ami了,所以terraform應該會破壞這個集羣。

也許這裏有一個解決方法?或者我應該提交一個問題?

+0

對不起,但你的意思是EBS量?我知道這個問題存在與ebs卷,它是Terraform中的錯誤https://github.com/hashicorp/terraform/issues/2957 –

+0

不,很好的問題,但這是針對AMI,更具體地說是針對g2實例的AMI。當g2實例基於創建的AMI被刪除時,terraform無法刷新。 – kjbradley

+1

這似乎可能是您的AMI生命週期或如何使用數據源的問題。我建議給AMI添加標籤,以便新的AMI可以被同一個AMI數據源過濾器自動選取(並使用most_recent選擇新的),然後你就不會發現自己處於這種情況。 – ydaetskcoR

回答

3

默認情況下,Terraform會在採取任何操作之前刷新所有資源,以確保其正在使用最新的世界狀態記錄。

在不適合的情況下(例如您在此描述的情況),可以通過將選項-refresh=false傳遞給terraform destroy命令來禁用此行爲。在這種情況下,Terraform將使用之前運行狀態中已保存的值,跳過通常更新它們的「刷新」步驟。