تعريف Handlers وأنماط إعادة التشغيل
اكتب Handlers قابلة لإعادة الاستخدام لإعادة تشغيل الخدمة
تعريف Handlers وأنماط إعادة التشغيل درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
أين توجد Handlers؟
توضع handlers في قسم handlers الخاص بها داخل play، منفصلًا عن المهام العادية. وهذا يحافظ على تجميع الإجراءات التفاعلية بوضوح.
tasks:
- name: Deploy config
ansible.builtin.template:
src: app.conf.j2
dest: /etc/app.conf
notify: Restart app
handlers:
- name: Restart app
ansible.builtin.service:
name: app
state: restartedالـ Handler مهمة
يستخدم handler الصياغة نفسها تمامًا التي تستخدمها المهمة: name واستدعاء module. والاختلاف الوحيد أنه ينتظر أن يُرسَل إليه إشعار.
الاسم هو العقد
إن name الخاص بـ handler هو السلسلة النصية التي تشير إليها المهام الأخرى في notify. تعاملوا معه كوسم ثابت ودقيق ستعيدون استخدامه.
إعادة التشغيل باستخدام service
يستخدم handler التقليدي لإعادة التشغيل وحدة service مع ضبط state على restarted. ويوقف الوحدة ثم يشغّلها في خطوة واحدة.
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restartedإعادة التحميل مقابل إعادة التشغيل
فضّلوا reloaded عندما تدعمها الخدمة. إذ تعيد إعادة التحميل قراءة الإعدادات دون قطع الاتصالات، بخلاف إعادة التشغيل الكاملة.
- name: Reload nginx
ansible.builtin.service:
name: nginx
state: reloadedاستخدموا systemd مباشرةً
تمنح وحدة systemd تحكمًا أدق في المضيفين الذين يستخدمون systemd، بما في ذلك daemon_reload بعد تغيير ملف unit.
- name: Restart app
ansible.builtin.systemd:
name: app
state: restarted
daemon_reload: trueأبقوا Handlers عامة
اكتبوا handler واحدًا قابلًا لإعادة الاستخدام باسم إعادة تشغيل nginx، وأرسلوا إليه الإشعارات من عدة مهام. تجنبوا نسخ منطق إعادة التشغيل نفسه في كل مكان.
تُشغَّل Handlers حسب ترتيب تعريفها
عند وضع عدة handlers في قائمة الانتظار، تُشغَّل وفق ترتيب تعريفها، لا وفق ترتيب إرسال الإشعارات إليها. خططوا لهذا التسلسل مسبقًا.
الترتيب مهم للتبعيات
إذا كان يجب إجراء إعادة التحميل قبل إعادة التشغيل، فعرّفوهما بهذا الترتيب في قائمة handlers حتى تُنفَّذ قائمة الانتظار بشكل صحيح.
Handlers في الأدوار
في role، توجد handlers في handlers/main.yml. وتُرسل المهام داخل role الإشعارات إليها بالاسم، تمامًا كما في ملف Playbook عادي.
التسمية من أجل الوضوح
استخدموا أسماء بصيغة أفعال مثل إعادة تشغيل nginx أو إعادة تحميل sshd. تجعل الأسماء الواضحة المخرجات سهلة القراءة، وتوضح أسطر notify.
تحقق سريع
غيّرتم إعدادًا وتريدون أن تلتقطه الخدمة قيد التشغيل دون قطع الاتصالات. ما الحالة الأفضل؟
مراجعة
يمكنكم الآن تعريف handlers في قسم handlers، والاختيار بين إعادة التشغيل وإعادة التحميل، والاعتماد على التنفيذ حسب ترتيب التعريف. 🎯
الأسئلة الشائعة
هل درس «تعريف Handlers وأنماط إعادة التشغيل» مجاني؟
نعم — نص درس «تعريف Handlers وأنماط إعادة التشغيل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «تعريف Handlers وأنماط إعادة التشغيل»؟
اكتب Handlers قابلة لإعادة الاستخدام لإعادة تشغيل الخدمة تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «تعريف Handlers وأنماط إعادة التشغيل»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إشعار Handler عند حدوث تغيير
- تعريف Handlers وأنماط إعادة التشغيل
- متى تعمل Handlers وflush_handlers
- Listen: مُشغّل واحد وعدة Handlers