github/gitignore · Terraform.gitignore
Terraform-.gitignore-Vorlage erklärt
Erklärt, warum Terraform.gitignore den Ordner .terraform, tfstate, tfvars, override-Dateien und die CLI-Konfiguration ignoriert und warum .terraform.lock.hcl committet werden muss.
Terraform.gitignore konzentriert sich darauf, in Repositorys mit Infrastrukturcode das Durchsickern von Zustand und Geheimnissen zu verhindern. Terraform-Zustandsdateien speichern Ressourcenattribute im Klartext und können Datenbankpasswörter oder Schlüssel enthalten.
.terraform.lock.hcl ignoriert diese Vorlage nicht. HashiCorp empfiehlt, diese Abhängigkeits-Lock-Datei unter Versionskontrolle zu stellen.
Regeln im Einzelnen
| Muster | Was ignoriert wird und warum |
|---|---|
.terraform/ | Lokales ArbeitsverzeichnisEnthält die von terraform init heruntergeladenen Provider-Binärdateien und Module sowie die Backend-Konfiguration. Die Binärdateien sind betriebssystemspezifisch, nicht teilbar und groß. |
*.tfstate*.tfstate.*.terraform.tfstate.lock.info | ZustandsdateienDateien, die die Zuordnung zwischen realer Infrastruktur und Code festhalten. Sensible Daten stehen darin im Klartext, und wenn mehrere Personen jeweils eigene Kopien haben, driftet der Zustand auseinander. Legen Sie sie in einem entfernten Backend wie S3 oder Terraform Cloud mit Sperre ab. |
*.tfvars*.tfvars.json | VariablenwertdateienDateien mit umgebungsspezifischen Werten und Geheimnissen. Auch die Kommentare der Vorlage weisen darauf hin, dass sie sehr wahrscheinlich Passwörter oder private Schlüssel enthalten. |
override.tfoverride.tf.json*_override.tf*_override.tf.json | override-DateienDateien, die Ressourceneinstellungen lokal vorübergehend überschreiben. Um eine davon zu committen, nehmen Sie sie wie in den Kommentaren der Vorlage in der Form !example_override.tf wieder auf. |
crash.logcrash.*.log | AbsturzprotokolleLogs, die Terraform bei einem abnormalen Ende hinterlässt; sie können Konfigurationsinhalte enthalten. |
.terraformrcterraform.rc | CLI-KonfigurationCLI-Konfigurationsdateien, die ein Authentifizierungstoken für Terraform Cloud enthalten können. |
Hinweise für die Praxis
- Committen Sie
.terraform.lock.hcl. So initialisieren alle mit denselben Provider-Versionen und -Hashes. - Gemeinsam benötigte Standardvariablen gehören in
defaultvonvariables.tfoder in eine Beispieldatei (terraform.tfvars.example), nicht in*.auto.tfvars. Die Regel*.tfvarsignoriert keine Dateien, die auf.exampleenden. - Auch mit
terraform plan -out=tfplanerzeugte Plandateien enthalten sensible Daten; sicherer ist es, wie in den Kommentaren der Vorlage die Regel*tfplan*zu ergänzen. - Wurde eine Zustandsdatei bereits committet, entfernen Sie sie aus dem Repository und ersetzen Sie zusätzlich alle darin enthaltenen Geheimnisse.
Originalvorlage
Terraform.gitignore
# Local .terraform directories.terraform/# .tfstate files*.tfstate*.tfstate.*# Crash log filescrash.logcrash.*.log# Exclude all .tfvars files, which are likely to contain sensitive data, such as# password, private keys, and other secrets. These should not be part of version# control as they are data points which are potentially sensitive and subject# to change depending on the environment.*.tfvars*.tfvars.json# Ignore override files as they are usually used to override resources locally and so# are not checked inoverride.tfoverride.tf.json*_override.tf*_override.tf.json# Ignore transient lock info files created by terraform apply.terraform.tfstate.lock.info# Include override files you do wish to add to version control using negated pattern# !example_override.tf# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan# example: *tfplan*# Ignore CLI configuration files.terraformrcterraform.rc# Optional: ignore graph output files generated by `terraform graph`# *.dot# Optional: ignore plan files saved before destroying Terraform configuration# Uncomment the line below if you want to ignore planout files.# planout
Vorlagenquelle: github/gitignore/Terraform.gitignore @356fd7b (2026-09-11) · CC0-1.0