تخطَّ إلى المحتوى

🏗️ شرح Terraform والبنية التحتية كرمز

ما هي مساحة العمل (Workspace) في Terraform ومتى تستخدمها؟

الدرس 12 من 15· ⏱ 1 دقائق قراءة

كيف تدير بيئات متعدّدة (dev، staging، prod) من إعداد واحد؟ إحدى الأدوات هي مساحات العمل (Workspaces). درس متقدّم يبني على الحالة (State).

ما هي مساحة العمل؟

مساحة العمل تتيح لـ Terraform الاحتفاظ بـ عدّة حالات منفصلة لنفس الإعداد. أي أنّك تشغّل الكود نفسه، لكن كل مساحة عمل لها ملفّ حالة مستقلّ — فلا تتداخل موارد dev مع prod.

يبدأ كل إعداد بمساحة عمل افتراضية اسمها default.

الأوامر الأساسية

terraform workspace list           # عرض المساحات
terraform workspace new staging    # إنشاء مساحة جديدة
terraform workspace select staging # التبديل إليها

كل مساحة تحتفظ بحالتها الخاصّة، فتطبيق الإعداد في staging لا يمسّ موارد default أو prod.

متغيّر terraform.workspace

يمكنك استخدام اسم مساحة العمل الحالية داخل كودك عبر terraform.workspace لتخصيص السلوك:

resource "aws_instance" "web" {
  instance_type = terraform.workspace == "prod" ? "t3.large" : "t3.micro"
  # ...
}

هنا يكبر حجم الخادم في الإنتاج ويصغر في غيره — من إعداد واحد.

حدود مهمّة

مساحات العمل ليست عزلًا كاملًا بين البيئات. جميعها تشترك في الـ backend والإعداد نفسه، فخطأ في الكود يؤثّر عليها جميعًا. للفصل القويّ بين بيئات حسّاسة (خصوصًا الإنتاج)، يفضّل كثيرون مجلّدات/إعدادات منفصلة لكل بيئة بدل الاعتماد على مساحات العمل وحدها.

متى تستخدمها؟

  • مناسبة: لتباينات بسيطة وسريعة من إعداد واحد (بيئات اختبار مؤقّتة).
  • غير كافية: للفصل الصارم بين بيئات إنتاجية حسّاسة.

الخطوات التالية

للفصل عبر البنية راجع هيكلة المشروع، ولاكتشاف تغيّرات خارج الكود راجع كشف الانحراف (Drift).

شرح ما هي مساحة العمل (Workspace) في Terraform ومتى تستخدمها؟ — Terraform والبنية التحتية كرمز بالعربي
ما هي مساحة العمل (Workspace) في Terraform ومتى تستخدمها؟Terraform والبنية التحتية كرمز بالعربي · The Code Fix

هل كان هذا الدرس مفيدًا؟