github/gitignore · Terraform.gitignore
Plantilla .gitignore de Terraform explicada
Explica por qué Terraform.gitignore ignora la carpeta .terraform, tfstate, tfvars, los archivos override y la configuración de la CLI, y por qué .terraform.lock.hcl debe confirmarse.
Terraform.gitignore se centra en que no se filtren el estado ni los secretos en repositorios de código de infraestructura. El archivo de estado de Terraform guarda en texto plano los atributos de los recursos, que pueden incluir contraseñas de bases de datos o claves.
Esta plantilla no ignora .terraform.lock.hcl. HashiCorp indica incluir este archivo de bloqueo de dependencias en el control de versiones.
Explicación regla por regla
| Patrón | Qué ignora y por qué |
|---|---|
.terraform/ | Directorio de trabajo localContiene los binarios de proveedores y módulos que descarga terraform init, y la configuración del backend. Son binarios específicos de cada sistema operativo, así que no se pueden compartir, y además ocupan mucho. |
*.tfstate*.tfstate.*.terraform.tfstate.lock.info | Archivos de estadoRegistran la correspondencia entre la infraestructura real y el código. Contienen información sensible en texto plano y, si varias personas tienen cada una su copia, el estado se desincroniza. Guárdalos en un backend remoto como S3 o Terraform Cloud con bloqueo. |
*.tfvars*.tfvars.json | Archivos de valores de variablesSon archivos con valores por entorno y secretos. Los comentarios de la plantilla también explican que es muy probable que contengan contraseñas o claves privadas. |
override.tfoverride.tf.json*_override.tf*_override.tf.json | Archivos overrideSon archivos que sobrescriben temporalmente en local la configuración de recursos. Para confirmarlos, recupéralos con la forma !example_override.tf, como en los comentarios de la plantilla. |
crash.logcrash.*.log | Registros de fallosSon registros que deja Terraform cuando termina de forma anómala y pueden incluir contenido de la configuración. |
.terraformrcterraform.rc | Configuración de la CLISon archivos de configuración de la CLI que pueden contener el token de autenticación de Terraform Cloud. |
Precauciones en la práctica
- Confirma
.terraform.lock.hcl. Así todos inicializan con las mismas versiones y hashes de proveedores. - Las variables predeterminadas que deban compartirse ponlas en el
defaultdevariables.tfo en un archivo de ejemplo (terraform.tfvars.example), no en*.auto.tfvars. La regla*.tfvarsno ignora los archivos que terminan en.example. - El archivo de plan creado con
terraform plan -out=tfplantambién contiene información sensible, así que es más seguro añadir la regla*tfplan*, como en los comentarios de la plantilla. - Si el archivo de estado ya se confirmó, además de quitarlo del repositorio, sustituye todos los secretos que contenía.
Plantilla 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
Origen de las plantillas: github/gitignore/Terraform.gitignore @356fd7b (2026-09-11) · CC0-1.0