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

Ansible / الأساسي: التنفيذ والجرد والحالة النوعية / الدرس 4

اختيار الوحدات وتفسير نتائجها

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

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

أهداف الدرس

  • تمييز وحدات الحالة من command وshell.
  • تفسير التغير والفشل والتجاوز والبيانات المسجلة.
  • تحديد فحوص تكرارية وقبول هادفة.

الوحدة واجهة بمتطلبات منصة

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

لـ command وshell حدود تحليل مختلفة

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

النتائج المسجلة ملاحظات منظمة

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

yaml تسجيل توضيحي ووصول لحقل
- name: Describe a synthetic result
  hosts: lab_nodes
  gather_facts: false
  tasks:
    - name: Produce a harmless illustrative message
      ansible.builtin.debug:
        msg: Synthetic report
      register: lab_result
    - name: Inspect only the declared message field
      ansible.builtin.debug:
        var: lab_result.msg

يوضح حقل debug وفق توثيقه ويبقى غير قابل للتشغيل دون ادعاء نتيجة محرك.

changed انتقال حالة مبلغ عنه

يبلغ changed التعديل أو تنبؤه المدعوم ويقود المعالجات والملخص. لا يجعل changed_when:false أمراً خطراً آمناً أو تكرارياً، وقد يكرر قالب غير ثابت التالي. افحص المرصود والمطلوب والثابت. يقارن النموذج قواميس لا منطق وحدة كاملاً. ويؤثر تقرير التغير في خطوات لاحقة مثل الإشعار، لذلك يمكن لتعديل ظاهري في الملخص أن يغير السلوك التشغيلي حتى لو لم يغير الأمر المنفذ نفسه.

python نمذجة التقارب والتكرار الثابت غير متصل
desired = {'enabled': True, 'label': 'review'}
first_observed = {'enabled': False, 'label': 'review'}
second_observed = desired.copy()
print('first_changed=' + str(first_observed != desired))
print('second_changed=' + str(second_observed != desired))
الناتج المتوقع
first_changed=True
second_changed=False

لا يتغير الثاني لمساواة الحالة دون وحدة أو خدمة أو إعداد؛ وتبقى الصحة مستقلة.

اختبار التكرار والسلوك المفيد منفصلين

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

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

افتراض تكرارية مهمة shell

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

إخفاء changed_when أثراً خطراً

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

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

لماذا يحدث؟
وصل للاختياري بلا حرس.
كيف تصلحه؟
افحص الحالة والحقول أولاً.
كيف تتجنب تكراره؟
اختبر التجاوز وcheck mode.

اختبر فهمك

1. لماذا لا يضمن changed_when:false التكرارية؟

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

يغير الإبلاغ لا الفعل؛ قد يكرر الأثر ويدعي الثبات. تحقق من الحالة وفضل عقد الحالة المطلوبة.

2. ماذا يميز الاختبار بعد تشغيل ثان غير متغير؟

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

ميز التقارب من القبول فقد تطابق الملفات ويبقى التطبيق غير سليم. افحص السلوك واحفظ المدخل والبيئة.

أهم ما تعلمته

  • اقرأ العقود واحفظ معنى النتائج المنظمة.
  • افصل صدق التغير من السلامة والصحة.

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