ملفّ main.tf واحد يكفي للتجارب، لكنّ المشاريع الحقيقية تحتاج تنظيمًا. سنتعلّم بنيةً قابلة للصيانة تبني على الوحدات (Modules). درس متوسّط.
⚠️ البنية إرشادية؛ عدّلها بما يناسب مشروعك.
المشكلة: ملفّ واحد لا يتوسّع
مع نموّ البنية، يصبح ملفّ ضخم واحد صعب القراءة والصيانة، ويصعب إعادة استخدام أجزائه. الحلّ: الفصل والتنظيم.
فصل الملفّات حسب الغرض
اقسم إعدادك إلى ملفّات واضحة الأدوار داخل المجلّد الواحد (Terraform يقرأها جميعًا):
main.tf # الموارد الأساسية
variables.tf # تعريف المتغيّرات (المدخلات)
outputs.tf # المخرجات
providers.tf # إعداد المزوّدين
هذا الفصل يجعل كل شيء سهل الإيجاد، دون تغيير في السلوك.
تنظيم الوحدات
ضع المكوّنات القابلة لإعادة الاستخدام في مجلّد modules/، واستدعِها من الإعداد الجذر:
.
├── main.tf
├── variables.tf
└── modules/
├── network/
└── compute/
كل وحدة تغلّف جزءًا (شبكة، حوسبة) بمدخلاتها ومخرجاتها، فتستدعيها بمعاملات مختلفة حيث تحتاج.
فصل البيئات (Environments)
للفصل بين dev وstaging وprod، من الأنماط الشائعة تخصيص مجلّد لكل بيئة يستدعي الوحدات نفسها بقيم مختلفة، أو استخدام مساحات العمل (Workspaces). الهدف: كود مشترك، وقيم مختلفة لكل بيئة.
لماذا يهمّ؟
- قابلية الصيانة: كل شيء في مكانه المنطقي.
- إعادة الاستخدام: الوحدات تُستدعى عبر المشاريع والبيئات.
- الاتّساق: بنية موحّدة يفهمها الفريق بسرعة.
الخطوات التالية
للعمل الجماعي على الحالة، تعلّم إدارة الحالة البعيدة مع S3، وراجع الوحدات.