Ansible / الأساسي: التنفيذ والجرد والحالة النوعية / الدرس 1
فهم نموذج الأتمتة في Ansible
افصل قرارات المتحكم واختيار الجرد وتنفيذ الوحدة والحالة المطلوبة وإثبات النتيجة قبل كتابة الأتمتة.
في هذه الصفحة
أهداف الدرس
- تمييز ansible-core من الحزمة المجتمعية والمجموعات.
- شرح مسؤوليات المتحكم والعقد المدارة.
- اعتبار الاختيار والامتياز والتحقق حدوداً صريحة.
للمحرك والمحتوى حدود إصدار مختلفة
يوفر ansible-core المحرك واللغة والمضمنات، وتضيف الحزمة المجتمعية مجموعات مختارة بترقيم آخر. تجمع collection الوحدات والملحقات والأدوار ولا يعني تثبيت المحرك وجود الجميع. نعتمد توثيق عائلة 2.21 ولا ندعي تشغيلها محلياً. سجل المحرك وPython والمجموعات لأن توافقها يحدد القواعد والملحقات المتاحة. ولا يكفي رقم إصدار الحزمة المجتمعية وحده لمعرفة واجهات المحرك المتاحة؛ فالمجموعات محتوى مستقل قد لا يكون مثبتاً على المتحكم الذي سيشغّل المشروع.
يؤدي المتحكم والأهداف أعمالاً مختلفة
يقرأ المتحكم الجرد والكتب ويقيم القيم والقوالب وينسق. قد تنفذ المهمة على هدف أو API أو المتحكم حسب الاتصال والوحدة. لا يعني غياب الوكيل غياب الاعتماد؛ قد يحتاج الهدف مفسراً أو نقلاً مدعوماً. تعود بيانات منظمة كالتغير والفشل ولا يثبت نجاح المهمة صحة التطبيق كله. افصل التنسيق والآثار والتحقق. وقد يأتي نجاح المهمة من تنفيذ جزء محدد من الخطة فقط، لذلك يجب ربط النتيجة المنظمة بما نُفذ فعلياً وبشرط القبول الذي يهم مستخدم التطبيق.
الحالة المطلوبة عقد لا خاصية عامة
تقارن وحدة الحالة المطلوب بالمرصود وتغير اللازم. تعني التكرارية ألا يضيف التكرار آثاراً مقصودة بالشروط، لا مجرد مظهر YAML. قد يتغير shell أو قالب غير ثابت أو خارج كل مرة. اختر الدلالة ووثق ما يثبته الثاني، وافصل التقارب من قبول التطبيق؛ فقد يطابق الملف قالباً مرفوضاً. وتشمل افتراضات التكرارية ثبات المدخلات والحالة الخارجية ذات الصلة؛ فإذا تغيرت إحداهما فلا يجوز تفسير كل تغير لاحق على أنه عيب في الوحدة.
desired = {'mode': 'review', 'workers': 2}
observed = {'mode': 'review', 'workers': 2}
print('synthetic_changed=' + str(observed != desired))
print('application_health=not-tested')
synthetic_changed=False
application_health=not-tested
مقارنة القاموس نموذج غير متصل لا Ansible أو مضيف، ولا تثبت المساواة التطبيق.
قد يكون نطاق play أهم من نص المهمة
يحدد الجرد والنمط والحد والتفويض والاتصال والامتياز موضع الفعل وسلطته. تخطئ مهمة تبدو آمنة إن استهدفت غير المقصود. راجع السكان والاعتماد مستقلاً. لا يكفي اسم localhost لكل السلامة مع الإعداد والحقائق والبحث والمحتوى. أمثلة Ansible غير قابلة للتشغيل وفحوصنا نماذج وYAML دون SSH أو جرد مهيأ أو أسرار. كما يجب أن توضح المراجعة الحساب المستخدم ومصدر صلاحياته، لأن سلامة وسيطات الوحدة لا تعوض خطأ اختيار الجهاز أو تفويض التنفيذ إلى موضع آخر.
قراءة play صغيرة قبل الآثار
كتاب التشغيل قائمة plays تختار الأهداف والعمل. استخدم FQCN لتحديد الوحدة وعطل جمع الحقائق غير اللازم في العرض كي لا تخفي عملية ضمنية. تصف الأسماء القصد وتفيد المراجعة. يوضح التالي البنية ورسالة debug لمجموعة افتراضية؛ يثبت التحليل YAML لا الجرد أو توافق الملحق أو التنفيذ. وتفيد أسماء المهام الوصفية في تتبع القصد داخل النتائج، لكنها لا تثبت وحدها أن الفعل الصحيح اختير أو أن متطلبات المجموعة والإصدار متوافقة.
- name: Describe a synthetic lab
hosts: lab_nodes
gather_facts: false
tasks:
- name: Explain the planned target
ansible.builtin.debug:
msg: Synthetic lab only
تبقى غير قابلة للتشغيل وتحللت YAML فقط دون جرد أو اتصال أو debug أو حقائق.
الأخطاء الشائعة وإصلاحها
اعتبار إصدار الحزمة إصدار المحرك
- لماذا يحدث؟
- اختلط نظاما الإصدار.
- كيف تصلحه؟
- سجل المحرك والمجموعات منفصلة.
- كيف تتجنب تكراره؟
- احفظ بيان اعتماد تنفيذ صريحاً.
اعتبار changed=false صحة التطبيق
- لماذا يحدث؟
- اختلطت المقارنة بالتحقق الوظيفي.
- كيف تصلحه؟
- أضف قبول التطبيق مستقلاً.
- كيف تتجنب تكراره؟
- عرف التقارب والصحة منفصلين.
افتراض غياب اعتماد للنهج بلا وكيل
- لماذا يحدث؟
- أُهملت متطلبات الاتصال والوحدة.
- كيف تصلحه؟
- اقرأ متطلبات الطرفين.
- كيف تتجنب تكراره؟
- تحقق من مصفوفة المنصات قبل الطرح.
اختبر فهمك
1. ماذا يثبت تحليل YAML غير المتصل عن الكتاب؟
اعرض الحل المشروح
يثبت تمثيل الوثيقة بيانات لا كلمات Ansible أو الجرد أو الوحدة أو الاتصال أو التكرارية. لها فحوص أخرى وتنفيذ مؤقت عند التصريح.
2. لماذا تسجل الخطة النطاق والحالة معاً؟
اعرض الحل المشروح
الحالة الصحيحة على الهدف الخطأ فشل؛ يحدد النطاق السكان والسلطة وتحدد الحالة النتيجة، فراجع واختبر كليهما.
أهم ما تعلمته
- افصل المحرك والمحتوى والمتحكم والهدف والقبول.
- عامل النطاق والسلامة مدخلين صريحين.