0Pricing
DevOps Bootcamp · درس

إعادة هيكلة الحالة باستخدام moved وremoved

أعيدوا تسمية الموارد وإعادة هيكلتها بأمان دون تدمير البنية التحتية، باستخدام أوامر معالجة الحالة وكتل moved وremoved التصريحية.

إعادة هيكلة الحالة باستخدام moved وremoved درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

مشكلة إعادة التسمية

عند إعادة تسمية مورد في إعداداتك، يرى Terraform أن العنوان القديم اختفى وأن عنوانًا جديدًا ظهر. وبشكل افتراضي، سيقوم بتدمير المورد وإعادة إنشائه، مما قد يؤدي إلى توقف الخدمة أو فقدان البيانات.

تتيح لك أدوات إعادة هيكلة الحالة إخبار Terraform بأن المورد قد انتقل فحسب.

فحص الحالة

ابدأ بسرد العناصر المتتبعة في الحالة. يعرض الأمر terraform state list عنوان كل مورد تتم إدارته.

terraform state list

النقل الإجرائي باستخدام state mv

الأسلوب التقليدي هو terraform state mv، الذي يعيد كتابة عنوان المورد في الحالة. نعيد هنا تسمية مثيل من aws_instance.web إلى aws_instance.app.

terraform state mv aws_instance.web aws_instance.app

عيب state mv

إن state mv إجراء يدوي لمرة واحدة من خلال CLI. ولا يُسجَّل في الشيفرة، لذلك يجب على زملائك الذين يجرون التغيير نفسه على أجهزتهم تكراره. وهذا عرضة للأخطاء في سير العمل التعاوني.

كتل moved التصريحية

تسجل كتلة moved إعادة التسمية في إعداداتك. ويطبقها Terraform تلقائيًا للجميع أثناء عملية التخطيط التالية، ثم يمكنك إزالة الكتلة لاحقًا.

moved {
  from = aws_instance.web
  to   = aws_instance.app
}

النقل إلى وحدة

تتعامل كتل moved أيضًا مع تغليف الموارد داخل وحدة. ويتضمن العنوان الهدف مسار الوحدة.

moved {
  from = aws_instance.app
  to   = module.compute.aws_instance.app
}

التحقق باستخدام خطة

بعد إضافة كتلة moved، شغّل terraform plan. يعرض النقل الصحيح عدم وجود أي تدمير أو إنشاء، بل تغييرًا في العنوان فقط. وإذا استمر ظهور الاستبدال، فهذا يعني أن الكتلة غير صحيحة.

terraform plan

إزالة مورد من الحالة

قد ترغب أحيانًا في أن يتوقف Terraform عن إدارة مورد دون تدمير البنية التحتية الفعلية. والأمر الإجرائي لذلك هو terraform state rm.

terraform state rm aws_instance.legacy

كتل removed التصريحية

تدعم إصدارات Terraform الأحدث كتلة removed. فعند استخدام lifecycle { destroy = false }، تنسى الكتلة المورد في الحالة، لكنها تترك البنية التحتية الفعلية دون تغيير.

removed {
  from = aws_instance.legacy

  lifecycle {
    destroy = false
  }
}

تقسيم ملفات الحالة

بالنسبة إلى المشاريع الكبيرة، يمكن لـ terraform state mv -state-out نقل الموارد بين ملفات حالة منفصلة، وهو أمر مفيد عند تقسيم مشروع أحادي إلى حزم مستقلة يمكن تطبيقها بشكل منفصل.

terraform state mv -state-out=network.tfstate \
  aws_vpc.main aws_vpc.main

النسخ الاحتياطية والأمان

ينشئ Terraform ملف .backup قبل تعديل الحالة. ومع ذلك، عند استخدام الخلفيات البعيدة، احرص دائمًا على التأكد من أن الحالة ليست مقفلة من قِبل أحد زملائك قبل إجراء عمليات يدوية، لتجنب تلفها.

اختبار سريع

اختبر معرفتك بإعادة هيكلة الحالة.

مراجعة: إعادة هيكلة الحالة بأمان

يمكنك الآن إعادة هيكلة البنية التحتية دون تدميرها:

  • state mv / state rm للتغييرات الإجرائية.
  • كتل moved لإعادة التسمية التصريحية.
  • كتل removed لنسيان الموارد دون تدميرها.
  • تحقق دائمًا باستخدام خطة لا تعرض أي استبدال.

الأسئلة الشائعة

هل درس «إعادة هيكلة الحالة باستخدام moved وremoved» مجاني؟

نعم — نص درس «إعادة هيكلة الحالة باستخدام moved وremoved» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «إعادة هيكلة الحالة باستخدام moved وremoved»؟

أعيدوا تسمية الموارد وإعادة هيكلتها بأمان دون تدمير البنية التحتية، باستخدام أوامر معالجة الحالة وكتل moved وremoved التصريحية. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «إعادة هيكلة الحالة باستخدام moved وremoved»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الواجهات الخلفية للحالة عن بُعد
  2. قفل الحالة واتساقها
  3. استيراد الموارد الموجودة
  4. إعادة هيكلة الحالة باستخدام moved وremoved
← العودة إلى DevOps Bootcamp