Ich bin ein wenig verwirrt über die Frage, ob .tfstate
Dateien an Git zu begehen oder nicht. Die Terraform documentation Staaten:Sollte ich .tfstate Dateien an Git übergeben?
Terraforming setzen auch einige Zustand in die
terraform.tfstate
Datei standardmäßig. Diese Statusdatei ist extrem wichtig. Es ordnet verschiedene Ressourcenmetadaten den tatsächlichen Ressourcen-IDs zu, so dass Terraform weiß, was es verwaltet. Diese Datei muss gespeichert und an alle Benutzer von Terraform verteilt werden. Wir empfehlen, es einfach in die Versionskontrolle zu stellen, da es im Allgemeinen nicht zu groß ist. Jetzt
, auf der anderen Seite, die akzeptiert und upvoted Antwort auf Best practices when using Terraform heißt es:
Terraforming Config kann die Bereitstellung viele Boxen auf unterschiedliche Infrastruktur verwendet werden, von denen jede einen anderen Staat haben könnte. Da es auch von mehreren Personen betrieben werden kann, sollte dieser Zustand an einem zentralen Ort sein (wie S3), aber nicht git.
(Hervorhebung durch den ursprünglichen Autor, nicht von mir)
Wer richtig ist, und wenn ja, warum?
Hier ist ein weiterer Grund, dies zu betrachten: Betrachten Sie TF + Git als Softwareentwicklung mit Versionskontrolle. In diesem Fall würden Sie Ihre Build-Artefakte (d. H. Statusdateien) nicht in Ihrem VC-Repo speichern, sondern stattdessen in einem zentralen Artefakt-Repository (z. B. S3-Bucket). – KJH
Sie brauchen Terragrunt nicht mehr, um das Sperren zu ermöglichen. Es ist jetzt in Terraform integriert: https://www.terraform.io/docs/state/locking.html –