2017-09-05 69 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将使用之前运行状态中已保存的值,跳过通常更新它们的“刷新”步骤。