محتويات الدورة

Terraform / اللغة والمزود والهوية المُدارة / الدرس 6

حدود الخطة والحالة والتطبيق

اقرأ المقترح كمخرج مراجعة مع فهم قراءات المزود وحساسية الخطة والفشل الجزئي.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • ميّز التخطيط والحفظ وتحديث الرصد والتنفيذ.
  • اشرح لماذا لا يعد التطبيق معاملة عامة للأنظمة.

تقترح الخطة أفعالاً ضمن سياق محدد

يجمع التخطيط المصدر والمزودين المختارين والقيم والحالة والمشاهدات لاقتراح الأفعال. وليس تجربة عامة بلا آثار؛ فقد تتصل مصادر البيانات والمزودات بواجهات أو سلوك خارجي مدعوم، وقد تقفل الخلفية وتكتب ملفات. لا يطبق المقترح، لكن ذلك لا يجيز تشغيله لمساحة مجهولة. تعرض الدورة نصاً وسجلات مستقلة فقط ولا تنفذ أمر خطة.

الخطة المحفوظة مخرج له هوية وحساسية

يوضح الأمر حفظ خطة في عمل مصرح به مستقلاً، ولا نشغله أو نربط الدرس بخلفية. تحمل الخطة أكثر من الملخص المرئي وقد تحتوي قيماً حساسة. اربط الموافقة بالمخرج نفسه ومراجعة المصدر والاعتماد والمدخل وسلالة الحالة. يستبدل تغيير الملف بعد المراجعة أو توليد خطة أخرى بالاسم نفسه المحتوى المعتمد، فيكسر صلة الموافقة.

bash أمر خطة محفوظة للمراجعة فقط
terraform plan -out=review.tfplan

ينفذ الأمر تخطيطاً ويكتب ملفاً لو شُغل في مساحة مهيأة. يبقى غير قابل للتنفيذ هنا، ولا نختلق ملفاً أو ملخصاً كنتيجة. يلزم وصول وتصريح مستقلان.

اقرأ الاستبدال كإزالة وإنشاء معاً

يختلف التحديث عن الاستبدال الذي قد يحذف القديم وينشئ الجديد بترتيب تحدده الدورة والمزود. راع الاحتفاظ والهوية والتوقف والحصص والاعتماد والتفرد؛ فقد يعني فرق مصدر صغير انتقالاً كبيراً. السجل التالي بيانات تعليمية تشبه جزءاً من خطة، وليس ناتج Terraform ولا دليلاً على اختيار مزود فعلي.

python تصنيف فعلين مقترحين مصطنعين
changes = [
    {'address': 'terraform_data.catalog', 'actions': ['update']},
    {'address': 'terraform_data.cache', 'actions': ['delete', 'create']},
]
updates = sum(c['actions'] == ['update'] for c in changes)
replacements = sum(set(c['actions']) == {'delete', 'create'} for c in changes)
print(f'updates={updates}')
print(f'replacements={replacements}')
الناتج المتوقع
updates=1
replacements=1

يحوي المثبت تحديثاً واستبدالاً. يتجاهل التصنيف ترتيب الأفعال عمداً، وعلى المراجع الحقيقي فحصه ومعنى المورد. لا تقرأ حالة أو خطة.

قد يتوقف التطبيق بعد تقدم جزئي

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

تحقق من النتيجة بعد رمز النجاح

تحقق بعد التغيير المصرح من الهوية والخصائص والتطبيق والسياسة واتساق الحالة. لا يثبت نجاح عملية البنية جاهزية التطبيق أو اكتمال فعل تجاري خارجي. احتفظ بالمدخلات المعتمدة ودليل النتيجة مع الحجب. إن تقادمت الخطة فأعد توليدها ومراجعتها في السياق الصحيح ولا تتجاوز الفحص. يعتمد التغيير الآمن على الملكية والدليل طوال الدورة لا عصمة أمر واحد.

الأخطاء الشائعة وإصلاحها

Saved plan is stale.

لماذا يحدث؟
تغير سياق الحالة بعد إنتاج الخطة.
كيف تصلحه؟
أنتج وراجع خطة جديدة بالطريق المعتمد.
كيف تتجنب تكراره؟
اربط الموافقة بالهوية ونسق الكتّاب.

افتراض عدم التغيير عند فشل التطبيق.

لماذا يحدث؟
أُهمل النجاح الجزئي وحفظ الحالة.
كيف تصلحه؟
طابق الأفعال والدليل قبل إعادة مدروسة.
كيف تتجنب تكراره؟
خطط للفشل الجزئي قبل التصريح.

مراجعة عدد الأسطر المتغيرة فقط.

لماذا يحدث؟
خُلط حجم النص بالأثر وخطر الاستبدال.
كيف تصلحه؟
راجع الأفعال والهويات والاعتماد والبيانات.
كيف تتجنب تكراره؟
اشترط مراجعة الفعل للانتقال الحساس.

اختبر فهمك

1. هل يعني السجل تحديثين بسيطين؟

اعرض الحل المشروح

لا؛ أحدهما تحديث والآخر حذف وإنشاء. راجع الهوية والبيانات والإتاحة والاعتماد للاستبدال. لا يثبت المثال تنفيذ Terraform أو اعتماد المزود.

2. لماذا لا يكون plan آمناً تلقائياً لمشروع مجهول؟

اعرض الحل المشروح

قد يصل للخلفية ويقفل ويحدث الرصد ويقيم البيانات ويكتب ملفات. لذلك قد تحدث تفاعلات قبل التطبيق. أثبت المصدر والهوية والملكية والمدخل والتصريح؛ فالاسم المألوف لا يضمنها.

أهم ما تعلمته

  • راجع الأفعال الدقيقة واحم الخطط المحفوظة.
  • يحتاج الفشل الجزئي مطابقة بالأدلة لا تنظيفاً عشوائياً.

المراجع الرسمية