.tfstate
文件提交到Git上有些困惑。根据Terraform文档,它指出:
Terraform默认会将部分状态信息保存在
terraform.tfstate
文件中。该状态文件非常重要,它将各种资源元数据映射到实际的资源ID,以便Terraform知道它正在管理什么。该文件必须保存并分发给所有可能运行Terraform的人。我们建议将其简单地放入版本控制中,因为它通常不会太大。
然而,在使用Terraform的最佳实践的接受和投票答案中指出:
Terraform配置可以用于在不同基础架构上提供许多盒子,其中每个盒子都可能具有不同的状态。由于它也可以由多个人运行,因此应该将此状态放在集中位置(如S3)中,但不要放在Git上。
(原作者强调,而非我)
那么谁是正确的,如果是的话,为什么?
.tfstate
需要悲观锁定,而Git提供乐观锁定。 - giorgiosironi