include_role وimport_role وقت التشغيل
استدعِ Roles ديناميكيًا أثناء Play
include_role وimport_role وقت التشغيل درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ما بعد قائمة roles
تطبّق قائمة roles العليا الأدوار قبل تشغيل أي مهام. لكنك قد تحتاج أحيانًا إلى تشغيل دور في منتصف التنفيذ، في الموضع نفسه الذي توجد فيه مهمة.
استدعاء دور بوصفه مهمة
يتيح لك كل من include_role وimport_role استدعاء دور من داخل قسم المهام، بالتسلسل مع خطواتك الأخرى.
tasks:
- import_role:
name: nginximport_role ثابت
تُعالج import_role عند تحليل playbook، قبل بدء التشغيل. فتُدرج مهامه مبكرًا، ولا يمكنها لذلك الاعتماد على بيانات وقت التشغيل.
include_role ديناميكي
تُعالج include_role أثناء التشغيل، في اللحظة التي تصل فيها إلى تلك المهمة. ويمكنها الاستجابة للحقائق والنتائج المسجَّلة.
tasks:
- include_role:
name: backup
when: do_backupالتكرار على دور
بما أن include_role يعمل ديناميكيًا، يمكنك وضعه داخل حلقة وتطبيق الدور نفسه بمتغيرات مختلفة في كل مرة.
- include_role:
name: deploy_app
loop: "{{ app_list }}"لا يمكن لـ import_role استخدام حلقة
بما أن import_role يُحل وقت التحليل، فهو لا يدعم loop. استخدم include_role عندما تحتاج إلى تكرار دور.
اختلاف سلوك when
ينسخ استخدام when مع import_role الشرط إلى كل مهمة داخله. أما استخدام when مع include_role فيقيّد الدور بأكمله بوصفه وحدة واحدة.
تمرير المتغيرات بالطريقتين
يقبل كلا الشكلين vars لتخصيص الدور، تمامًا كما تفعل قائمة roles. وتنتقل القيم مباشرةً إلى الدور المضمَّن.
- include_role:
name: web
vars:
http_port: 8080الوسوم بين الثابت والديناميكي
مع import_role، تظهر وسوم المهام المستوردة في --list-tags. أما مع include_role، فيجب تطبيق الوسوم على عملية التضمين نفسها.
اختر الأداة المناسبة
استخدم import_role لبنية متوقعة تُشغَّل دائمًا. واستخدم include_role عندما يجب تشغيل الدور بشروط أو ضمن حلقة.
النمط نفسه على مستويين
يوفر Ansible الفصل نفسه بين الثابت والديناميكي لملفات المهام: إذ يحاكي import_tasks وinclude_tasks هاتين الكلمتين المفتاحيتين الخاصتين بالأدوار تمامًا.
تحقق سريع
تذكّر الكلمة المفتاحية التي يمكنها تطبيق دور داخل حلقة.
مراجعة
استخدم import_role للبنية الثابتة وقت التحليل، وinclude_role للاستدعاء الديناميكي وقت التشغيل مع الحلقات والشروط. 🔁
الأسئلة الشائعة
هل درس «include_role وimport_role وقت التشغيل» مجاني؟
نعم — نص درس «include_role وimport_role وقت التشغيل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «include_role وimport_role وقت التشغيل»؟
استدعِ Roles ديناميكيًا أثناء Play تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «include_role وimport_role وقت التشغيل»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تبعيات Role في meta/main.yml
- defaults مقابل vars: ترتيب التجاوز
- include_role وimport_role وقت التشغيل
- allow_duplicates وقابلية Role للتكرار الآمن