最近,我们遇到了在S3上删除tfstate的问题。
结果,仍有许多EC2实例仍在运行(如果有,则重复)
是否可以查询Terraform并列出Terraform可以控制的EC2实例(和其他资源)?我想删除重复的AWS资源而不弄乱Terraform状态。
答案 0 :(得分:1)
根据您是否关心可用性,您可以删除所有内容,然后让Terraform重新创建所有内容。
或者您可以使用terraform state list
,然后使用terraform state show
(例如terraform state list | xargs terraform state show
)进行遍历以显示所有内容。
terraform import
用于importing的东西,它们已经恢复到您的状态,这听起来不像您想要的,因为听起来您已经重新创建了一些东西,所以重复了。如果您在Terraform重新创建状态文件之前就已经从状态文件中发现了资源的丢失(例如,通过在计划中看到意外的创建,并且看到该资源已经在AWS控制台中存在),那么您可以使用它来导入资源返回状态文件,以便Terraform然后为这些资源显示一个空计划。
将来请确保您使用state locking来防止这种情况再次发生!