Ansible / المتوسط: الإعادة والأسرار والتحقق النطاقي / الدرس 10
تثبيت المجموعات واعتمادات التنفيذ
افصل FQCN وإصدارات المجموعات واعتمادات المتحكم ومتطلبات الهدف وبيئات التنفيذ المتكررة.
في هذه الصفحة
أهداف الدرس
- شرح نطاقات المجموعات وحدود التثبيت.
- تسجيل توافق المحرك وPython والملحقات.
- اعتبار المحتوى مدخلاً تنفيذياً لسلسلة التوريد.
المجموعة محتوى مستقل الإصدار
للمجموعة نطاق واسم ووحدات وملحقات وأدوار وبيانات. يحدد FQCN المحتوى لا الإصدار. تختلف المضمنة والمنفصلة بصيانتها، وقد يختلف متحكم ببحثه ونسخته. سجل المحلول والمصدر لا اسمًا مختصراً مفترضاً ولا تثبت مجموعة للتعليم فقط. وقد يختار متحكمان محتوى مختلفاً رغم تطابق النص، إذا اختلف مسار البحث أو المجموعة المثبتة؛ وهذه مسألة أصل تنفيذ يجب أن تبقى قابلة للتتبع.
يعبر ملف المتطلبات عن قصد الاعتماد
يحدد الملف نسخاً أو نطاقات بصيغة المثبت. وازن التكرار والتحديث المراجع واحفظ الفعلي؛ قد يتغير المفتوح. يثبت المثال ansible.posix من توثيقه المراجع لا أمراً للتنزيل أو توافق كل هدف. راجع المتعدي والتوقيع والمصدر والأثر غير المتصل معه. وتبقى النسخة المثبتة اختياراً مشروعياً تحت المراجعة، لا توصية باستعمالها إلى الأبد؛ فالتحديث الآمن يحتاج بياناً جديداً واختبارات للعقود التي تعتمد عليها.
collections:
- name: ansible.posix
version: '2.2.2'
عرف التوثيق الرسمي المراجع2.2.2 وتحلل البيان فقط دون مثبت أو Galaxy أو حزمة.
Python المتحكم والهدف سؤالا اعتماد مختلفان
يحتاج المتحكم Python مدعوماً وملحقاته وقد يختلف مفسر الهدف أو النقل أو يعمل API دون Python بالجهاز. تضيف الوحدة فوق المصفوفة العامة. تجمع بيئة التنفيذ المتحكم والمحتوى ولا تحقق كل بعيد أو تؤمن كل اعتماد. افحص المصفوفة ولا تعمم صورة واحدة. ويشمل ذلك المكتبات التي تنفذ على المتحكم عند مخاطبة API، إذ لا يعوض توفر Python على جهاز بعيد غياب اعتماد يحتاجه الملحق محلياً.
مقارنة الإصدارات المعلنة والمرصودة صراحة
يوضح تطابق غير متصل الانجراف من القفل لا محلل نطاقات عام. سجل لاحقاً المحرك والمفسر والمسار والنسخة والمتطلبات دون سر. لا يثبت YAML التثبيت والاستيراد. افحص قبل الآثار وأبلغ الغائب بوضوح لا خطأ وحدة متأخراً. ومن الأفضل أن يرفض الفحص السابق غياب الاعتماد برسالة واضحة، بدلاً من أن يبدأ تغييرات ثم يتوقف عند أول مهمة تحتاج الملحق غير المتاح.
declared = {'ansible.posix': '2.2.2'}
observed_fixture = {'ansible.posix': '2.2.2'}
print('synthetic_lock_matches=' + str(declared == observed_fixture))
print('collection_installed=not-tested')
synthetic_lock_matches=True
collection_installed=not-tested
يقارن القواميس ولا يفحص المسارات أو يحل أو يستورد أو يتصل.
ترقية المحتوى عبر حد تغيير مختبر
قد تغير الترقية الوسائط والقوالب والنتائج والمنصة والتحذير. اقرأ انتقالك الفعلي واحفظ السابق واختبر العقود بمؤقت مصرح. لا تغير المحرك والمحتوى والجرد والتطبيق دفعة دون فصل أسباب. لا نثبت أو نرقي بل نصمم قراراً ملموساً للمراجعة والرجوع. ويساعد فصل انتقال المحرك من انتقال المحتوى في تحديد مصدر التراجع، كما يجعل استعادة مجموعة الاعتمادات السابقة أكثر دقة من تراجع جزئي غير موثق.
الأخطاء الشائعة وإصلاحها
افتراض تثبيت الإصدار بـ FQCN
- لماذا يحدث؟
- اختلطت الهوية والنسخة.
- كيف تصلحه؟
- سجل النسخ والحل صراحة.
- كيف تتجنب تكراره؟
- احفظ بياناً مراجعاً.
اعتبار تغليف المتحكم دعم هدف كامل
- لماذا يحدث؟
- أُهملت المتطلبات البعيدة.
- كيف تصلحه؟
- تحقق من الطرفين والوحدة.
- كيف تتجنب تكراره؟
- احفظ مصفوفة منصة.
اعتبار النطاق المفتوح قابلاً للتكرار
- لماذا يحدث؟
- قد يختار المستقبل أثراً آخر.
- كيف تصلحه؟
- احفظ المحلول أو قيداً دقيقاً.
- كيف تتجنب تكراره؟
- اختبر التحديث كتغيير صريح.
اختبر فهمك
1. ما غير المثبت بعد تحليل requirements؟
اعرض الحل المشروح
يبقى التثبيت والأصالة والحل والتوافق والاستيراد والهدف والسلوك؛ سم التحليل دليلاً نحوياً فقط.
2. لماذا تسجل ترقيتي المحرك والمجموعة منفصلتين؟
اعرض الحل المشروح
لهما نظاما إصدار وصيانة مستقلان وواجهات مختلفة؛ يفيد الفصل التوافق والرجوع والسبب.
أهم ما تعلمته
- ثبت وراجع المحتوى التنفيذي لا الأسماء فقط.
- تحقق من المتحكم والمحتوى والهدف منفصلة.