github/gitignore · Terraform.gitignore
Template .gitignore do Terraform explicado
Explica por que o Terraform.gitignore ignora a pasta .terraform, tfstate, tfvars, os arquivos override e a configuração da CLI, e por que o .terraform.lock.hcl deve ser commitado.
O Terraform.gitignore se concentra em não deixar vazar o estado e os segredos em repositórios de código de infraestrutura. O arquivo de estado do Terraform guarda em texto puro os atributos dos recursos, que podem incluir senhas de banco de dados ou chaves.
Este template não ignora o .terraform.lock.hcl. A HashiCorp orienta incluir esse arquivo de lock de dependências no controle de versão.
Explicação regra por regra
| Padrão | O que ignora e por quê |
|---|---|
.terraform/ | Diretório de trabalho localContém os binários de providers e módulos baixados pelo terraform init e a configuração do backend. São binários específicos de cada sistema operacional, então não podem ser compartilhados, e ainda ocupam muito espaço. |
*.tfstate*.tfstate.*.terraform.tfstate.lock.info | Arquivos de estadoRegistram a correspondência entre a infraestrutura real e o código. Contêm informações sensíveis em texto puro e, se várias pessoas tiverem cada uma sua cópia, o estado fica dessincronizado. Guarde-os em um backend remoto como S3 ou Terraform Cloud, com lock. |
*.tfvars*.tfvars.json | Arquivos de valores de variáveisSão arquivos com valores por ambiente e segredos. Os comentários do template também explicam que é muito provável que contenham senhas ou chaves privadas. |
override.tfoverride.tf.json*_override.tf*_override.tf.json | Arquivos overrideSão arquivos que sobrescrevem temporariamente, na máquina local, a configuração de recursos. Para commitá-los, recupere-os no formato !example_override.tf, como nos comentários do template. |
crash.logcrash.*.log | Logs de falhaSão logs deixados pelo Terraform quando termina de forma anormal e podem incluir conteúdo da configuração. |
.terraformrcterraform.rc | Configuração da CLISão arquivos de configuração da CLI que podem conter o token de autenticação do Terraform Cloud. |
Cuidados na prática
- Commite o
.terraform.lock.hcl. Assim todos inicializam com as mesmas versões e hashes de providers. - Variáveis padrão que precisam ser compartilhadas devem ficar no
defaultdevariables.tfou em um arquivo de exemplo (terraform.tfvars.example), não em*.auto.tfvars. A regra*.tfvarsnão ignora arquivos que terminam em.example. - O arquivo de plano criado com
terraform plan -out=tfplantambém contém informações sensíveis, então é mais seguro adicionar a regra*tfplan*, como nos comentários do template. - Se o arquivo de estado já foi commitado, além de removê-lo do repositório, substitua todos os segredos que ele continha.
Template original
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
Origem dos templates: github/gitignore/Terraform.gitignore @356fd7b (2026-09-11) · CC0-1.0