为啥需要远程保存 terraform 状态文件?
Posted
技术标签:
【中文标题】为啥需要远程保存 terraform 状态文件?【英文标题】:why is it required to persist terraform state file remotely?为什么需要远程保存 terraform 状态文件? 【发布时间】:2019-07-18 04:44:21 【问题描述】:我是 terraform 的新手。谁能解释一下
为什么我们需要将 .tfstate 文件保存在本地或远程存储中,
当 terraform apply 总是用新的基础设施刷新状态文件。
提前致谢。
【问题讨论】:
【参考方案1】:状态文件跟踪 Terraform 管理的资源,无论是创建它们还是导入它们。 Terraform 的刷新仅检测托管资源的漂移,不会检测您是否在状态文件之外创建了新资源。
如果您丢失了状态,您最终将获得不受 Terraform 管理的孤立资源。如果出于某种原因,您对此感到满意,或者您有其他方式与其他团队成员/CI 共享状态并支持它,那么您就可以了。
当然,使用 Terraform 的远程状态可以巧妙地解决这些问题,因此如果您关心这些事情或认为您将来可能需要(您可能会),则应该使用它。
【讨论】:
谢谢,有道理。【参考方案2】:我将添加一个更加面向开发人员的视角来帮助理解。
想想你正在使用yarn
或npm
做一个NodeJS 应用程序,package.json
就像你的tf
文件,而yarn.lock
或package-lock.json
。
但不要按字面意思理解,因为 terraform 状态文件具有物理潜在含义。
【讨论】:
以上是关于为啥需要远程保存 terraform 状态文件?的主要内容,如果未能解决你的问题,请参考以下文章
创建谷歌云存储桶并使用相同的 terraform 脚本将 terraform 状态保存到其中?
无法使用“terraform init -reconfigure”将 S3 后端中的 Terraform 远程状态转换为本地状态