github/gitignore · Terraform.gitignore

Modèle .gitignore Terraform expliqué

Explique pourquoi Terraform.gitignore ignore le dossier .terraform, tfstate, tfvars, les fichiers override et la configuration du CLI, et pourquoi .terraform.lock.hcl doit être commité.

Ouvrir dans le générateur Ouvrir avec macOS, VisualStudioCode, JetBrains

Terraform.gitignore vise avant tout à empêcher la fuite de l'état et des secrets dans les dépôts de code d'infrastructure. Les fichiers d'état Terraform stockent les attributs des ressources en clair et peuvent contenir des mots de passe de base de données ou des clés.

Ce modèle n'ignore pas .terraform.lock.hcl. HashiCorp recommande d'inclure ce fichier de verrouillage des dépendances dans le contrôle de version.

Explication règle par règle

MotifCe qui est ignoré et pourquoi
.terraform/Répertoire de travail localContient les binaires de providers et les modules téléchargés par terraform init, ainsi que la configuration du backend. Ce sont des binaires propres à chaque système d'exploitation, impossibles à partager et volumineux.
*.tfstate*.tfstate.*.terraform.tfstate.lock.infoFichiers d'étatFichiers qui enregistrent la correspondance entre l'infrastructure réelle et le code. Des informations sensibles y figurent en clair, et si plusieurs personnes détiennent chacune leur copie, les états divergent. Placez-les dans un backend distant comme S3 ou Terraform Cloud avec un verrouillage.
*.tfvars*.tfvars.jsonFichiers de valeurs de variablesFichiers contenant des valeurs propres à chaque environnement et des secrets. Les commentaires du modèle précisent eux aussi qu'ils contiennent très probablement des mots de passe ou des clés privées.
override.tfoverride.tf.json*_override.tf*_override.tf.jsonFichiers overrideFichiers qui surchargent temporairement la configuration des ressources en local. Pour en commiter un, réincluez-le sous la forme !example_override.tf, comme le montrent les commentaires du modèle.
crash.logcrash.*.logLogs de crashLogs laissés par Terraform lors d'un arrêt anormal ; ils peuvent contenir des éléments de configuration.
.terraformrcterraform.rcConfiguration du CLIFichiers de configuration du CLI, susceptibles de contenir un jeton d'authentification Terraform Cloud.

Points d'attention en pratique

Modèle d'origine

Terraform.gitignore14 règles
# 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

Source des modèles : github/gitignore/Terraform.gitignore @356fd7b (2026-09-11) · CC0-1.0

Modèles utilisés ensemble

Autres modèles expliqués