對於是否將.tfstate
文件提交給Git的問題,我有點困惑。 Terraform documentation陳述如下:我應該將.tfstate文件提交給Git嗎?
Terraform默認也會將一些狀態置入
terraform.tfstate
文件。這個狀態文件非常重要。它將各種資源元數據映射到實際資源ID,以便Terraform知道它正在管理什麼。該文件必須保存並分發給任何可能運行Terraform的人。我們建議將它放入版本控制中,因爲它通常不會太大。
現在,在另一方面,在Best practices when using Terraform國家接受和upvoted答案:
Terraform配置可以用來在不同的基礎設施提供多少盒,每個可以有不同的狀態。由於它也可以由多人運行,所以此狀態應該位於中央位置(如S3),但而不是 git。
(重點原作者,不是我)
誰是對的,如果是這樣,爲什麼呢?
下面是看看這個的另一個原因/方法:將TF + Git看作使用版本控制的軟件開發。 在這種情況下,您不會將構建工件(即狀態文件)存儲在VC回購庫中,而是存儲在中央工件存儲庫(例如S3存儲桶)中。 – KJH
你不需要Terragrunt來提供鎖定了。它現在內置到Terraform中:https://www.terraform.io/docs/state/locking.html –