github/gitignore · Terraform.gitignore
شرح قالب .gitignore لـ Terraform
يشرح سبب تجاهل Terraform.gitignore لمجلد .terraform وtfstate وtfvars وملفات override وإعدادات CLI، ولماذا يجب إيداع .terraform.lock.hcl.
يركز 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.lock.hcl، فبه يهيّئ الجميع المشروع بإصدارات المزوّدين ومجاميعها نفسها. - ضع المتغيرات الافتراضية التي تحتاج إلى مشاركة في
defaultداخلvariables.tfأو في ملف مثال (terraform.tfvars.example) لا في*.auto.tfvars. قاعدة*.tfvarsلا تتجاهل الملفات التي تنتهي بـ.example. - ملفات الخطط التي ينشئها
terraform plan -out=tfplanتحوي أيضًا معلومات حساسة، فمن الأسلم إضافة قاعدة*tfplan*كما في تعليقات القالب. - إن كان ملف الحالة قد أُودع بالفعل فأزله من المستودع واستبدل معه كل الأسرار التي كانت فيه.
القالب الأصلي
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
مصدر القوالب: github/gitignore/Terraform.gitignore @356fd7b (2026-09-11) · CC0-1.0