github/gitignore · Terraform.gitignore

شرح قالب .gitignore لـ Terraform

يشرح سبب تجاهل Terraform.gitignore لمجلد .terraform وtfstate وtfvars وملفات override وإعدادات CLI، ولماذا يجب إيداع .terraform.lock.hcl.

فتح في المولّد فتح مع macOS, VisualStudioCode, JetBrains

يركز Terraform.gitignore في المستودعات التي تتعامل مع شيفرة البنية التحتية على منع تسرب الحالة والأسرار. تُخزَّن خصائص الموارد في ملفات حالة Terraform كنص صريح، وقد تتضمن كلمات مرور قواعد البيانات أو المفاتيح.

لا يتجاهل هذا القالب .terraform.lock.hcl. ترشد HashiCorp إلى تضمين ملف قفل الاعتماديات هذا في إدارة الإصدارات.

شرح القواعد

النمطما الذي يتجاهله ولماذا
.terraform/مجلد العمل المحلييحوي الملفات الثنائية للمزوّدين (providers) والوحدات التي نزّلها terraform init وإعدادات الواجهة الخلفية (backend). إنها ملفات ثنائية خاصة بكل نظام تشغيل فلا يمكن مشاركتها، وحجمها كبير.
*.tfstate*.tfstate.*.terraform.tfstate.lock.infoملفات الحالةملفات تسجّل التطابق بين البنية التحتية الفعلية والشيفرة. تُكتب فيها المعلومات الحساسة كنص صريح، وإذا احتفظ كل شخص بنسخته الخاصة اختلّت الحالة. توضع في واجهة خلفية بعيدة مثل S3 أو Terraform Cloud مع تفعيل القفل.
*.tfvars*.tfvars.jsonملفات قيم المتغيراتملفات تحوي القيم الخاصة بكل بيئة والأسرار. وتوضح تعليقات القالب أيضًا أن احتمال احتوائها على كلمات مرور ومفاتيح خاصة مرتفع.
override.tfoverride.tf.json*_override.tf*_override.tf.jsonملفات overrideملفات تستبدل إعدادات الموارد مؤقتًا على الجهاز المحلي. لإيداعها أعد تضمينها بصيغة !example_override.tf كما في تعليقات القالب.
crash.logcrash.*.logسجلات الانهيارسجلات يتركها Terraform عند توقفه غير الطبيعي، وقد تتضمن محتوى الإعدادات.
.terraformrcterraform.rcإعدادات CLIملفات إعدادات CLI، وقد تحوي رمز مصادقة Terraform Cloud.

ملاحظات عملية

القالب الأصلي

Terraform.gitignoreالقواعد: 14 سطرًا
# 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

مصدر القوالب: github/gitignore/Terraform.gitignore @356fd7b (2026-09-11) · CC0-1.0

قوالب تُستخدم معه

شروح قوالب أخرى