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

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

الإعداد والكائنات والحالة المُدارة

افصل الإعداد المرغوب والهوية وسلوك المزود والحالة والواقع قبل تفسير سير Terraform.

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

أهداف الدرس

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

صف القصد لا تسلسل أوامر

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

استخدم كتالوجاً اصطناعياً بدلاً من اعتماد سحابي

تستخدم الدورة atlas-lab، كتالوج خدمات خيالياً. تستعمل معظم الإعدادات المورد المدمج terraform_data لشرح القيم والهويات دون مزود سحابي. ومع ذلك فإن تطبيقه ينشئ حالة Terraform أو يغيرها؛ لذلك لا ننفذ تهيئة أو تخطيطاً أو تطبيقاً أو استيراداً أو أمر حالة. يمثل المثال التالي وحدة جذرية كاملة للتعليم تستهدف عائلة 1.16، ولا يدعي وجود مساحة مهيأة أو كائن منشأ سابقاً.

hcl وحدة جذرية اصطناعية كاملة
terraform {
  required_version = ">= 1.16.0, < 1.17.0"
}

resource "terraform_data" "catalog" {
  input = {
    service  = "atlas-api"
    replicas = 2
  }
}

output "declared_service" {
  value = terraform_data.catalog.input.service
}

يسمي العنوان نسخة إعداد لا معرّف كائن سحابي. يحمل المدخل atlas-api وعدد 2. لا يحتاج المزود المدمج تصريحاً خارجياً، لكن التنفيذ يظل مرتبطاً بمساحة وحالة. لم نطبقه.

تسجل الحالة الارتباطات والخصائص المرصودة

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

نموذج المقارنة ليس خطة Terraform

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

python مقارنة سجلين في الذاكرة
desired = {'service': 'atlas-api', 'replicas': 2}
stored = {'service': 'atlas-api', 'replicas': 1}
changed = sorted(k for k in desired if desired[k] != stored.get(k))
print('changed_fields=' + ','.join(changed))
الناتج المتوقع
changed_fields=replicas

يختلف replicas وحده فيظهر اسمه. لا يُقرأ مزود أو حالة أو خلفية أو حساب ولا يُشغل Terraform. ولا يقرر النموذج هل هو تحديث أو استبدال.

راجع الملكية قبل الانتقالات التشغيلية

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

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

اعتبار ترتيب النص ترتيب تنفيذ.

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

يبدو كائن موجود غائباً.

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

اعتبار فرق بسيط آمناً للتطبيق.

لماذا يحدث؟
لم يفحص فعل المزود وآثار الاعتماد.
كيف تصلحه؟
راجع معنى المورد ومجموعة التغييرات كاملة.
كيف تتجنب تكراره؟
افصل الحساب التعليمي عن دليل التنفيذ.

اختبر فهمك

1. هل ينشئ المثال خادمين سحابيين؟

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

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

2. لماذا لا تحذف الحالة عند فرق مجهول؟

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

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

أهم ما تعلمته

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

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