Terraform 如何从地形状态文件自动加载变量?

Terraform 如何从地形状态文件自动加载变量?,terraform,Terraform,我试图在bash脚本中使用terraform destroy,以便能够自动从当前状态文件中销毁资源。但我不想在销毁时再次询问用户变量,我希望它自动从当前状态文件中获取变量并销毁它。如何实现这一点?假设您实际上并不关心状态值,因为您只是在销毁存在的内容,并且没有一个变量像通常情况那样依赖于销毁内容,那么您实际上不需要读取状态,只需为这些必需的变量设置一些虚拟值即可 您可以为每个未设置的变量设置虚拟值,这些变量通常会在命令行上提示输入: 用于$(grep-R-I'variable.*{}path/t

我试图在bash脚本中使用
terraform destroy
,以便能够自动从当前状态文件中销毁资源。但我不想在销毁时再次询问用户变量,我希望它自动从当前状态文件中获取变量并销毁它。如何实现这一点?

假设您实际上并不关心状态值,因为您只是在销毁存在的内容,并且没有一个变量像通常情况那样依赖于销毁内容,那么您实际上不需要读取状态,只需为这些必需的变量设置一些虚拟值即可

您可以为每个未设置的变量设置虚拟值,这些变量通常会在命令行上提示输入:

用于$(grep-R-I'variable.*{}path/to/terraform/files/directory | grep-v-F.terraform/| cut-d'-f2 | sort-u)中的变量;do
导出TF_VAR_$variable=dummy
完成
这将找到所有未设置的变量(假设您已将它们定义为
变量“foo”{}
作为
地形fmt
将输出)在目录中的所有
.tf
文件中。然后它将排除
.terraform
目录中的匹配项,这样它就不会对可能已拉入的子模块执行任何操作。然后它会找到双引号中的变量键,然后对这些重复数据进行删除


找到所有未设置的必需变量后,将其设置为
TF\u VAR\u$variable=dummy
,以便设置每个变量。

谢谢@ydaetskcoR,我真的很喜欢这个想法,但是如果另一个人想要破坏一个人创建的资源,该怎么办。您共享的想法只针对一个创建它的人。真的吗任何人都可以直接从statefile中提取变量并销毁它们,而无需提示输入变量。具体是如何实现的?您是否可以编辑您的问题以显示此答案无法解决的问题?