إخراج العقد من Load Balancer ثم إعادة تفعيلها
أخرج العقد وأعدها بأمان
إخراج العقد من Load Balancer ثم إعادة تفعيلها درس مجاني في Ansible Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ansible Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ansible Academy 4 دروس في المجموع.
تحديث حركة المرور المباشرة محفوف بالمخاطر
إذا حدّثت خادمًا بينما يستخدمه المستخدمون، فستفشل الطلبات. والحل هو إخراج العُقدة من موازن التحميل أولًا. 🚦
ما المقصود بإخراج العُقدة؟
يعني إخراج العُقدة إيقاف إرسال حركة مرور جديدة إليها مع السماح للطلبات الجارية بالاكتمال. بعد ذلك يصبح تحديثها آمنًا.
دورة الإخراج والتحديث وإعادة التفعيل
يتكون النمط الآمن من ثلاث خطوات: إخراج العُقدة، ونشر التغيير، ثم إعادة تفعيلها في موازن التحميل.
عطّل عُقدة في HAProxy
تضبط وحدة community.general.haproxy عُقدةً خلفية على الحالة المعطّلة، وتخبر HAProxy بالتوقف عن توجيه حركة المرور إليها.
- name: Drain web node
community.general.haproxy:
state: disabled
host: "{{ inventory_hostname }}"
socket: /var/run/haproxy.sockشغّل مهمة موازن التحميل من موازن التحميل
توجد واجهة HAProxy على موازن التحميل، لذا استخدم delegate_to لتفويض المهمة إلى مضيف LB، مع الاستمرار في تحديد عُقدة الويب التي يجري إخراجها.
delegate_to: lb01انتظر حتى تُستنزف الاتصالات
امنح الطلبات النشطة وقتًا كي تكتمل. استخدم wait_for أو فترة انتظار قصيرة حتى لا تقطع اتصالات المستخدمين أثناء تنفيذ طلباتهم.
- name: Let traffic drain
ansible.builtin.wait_for:
timeout: 30
delegate_to: localhostانشر الآن بأمان
بعد إخراج العُقدة من التوزيع، شغّل مهام التحديث: ثبّت الحزم، وادفع التهيئة، وأعد تشغيل التطبيق. لن تتأثر أي حركة مرور مباشرة. 🔧
أعد تفعيل العُقدة
بعد التحديث، اضبط حالة العُقدة على enabled لكي يستأنف HAProxy توجيه حركة المرور إلى خادمك المحدَّث حديثًا.
- name: Re-enable web node
community.general.haproxy:
state: enabled
host: "{{ inventory_hostname }}"
socket: /var/run/haproxy.sock
delegate_to: lb01افحص الصحة قبل إعادة التفعيل
تأكد من أن التطبيق يعمل فعلًا قبل إعادته. ويمنع فحص wait_for أو uri لنقطة نهاية الصحة تقديم الخدمة من عُقدة معطّلة.
- ansible.builtin.uri:
url: http://localhost:8080/health
status_code: 200
retries: 5
delay: 3تعامل مع عُقدة واحدة في كل مرة
اجمع هذه الدورة مع serial بحيث لا تُخرَج سوى عُقدة واحدة أو عُقدتين في كل مرة. وتستمر العُقد الأخرى في تقديم الخدمة، مما يحقق عدم التوقف.
- hosts: web
serial: 1أعد التفعيل دائمًا، حتى عند الفشل
غلّف النشر داخل block مع always، حتى يعيد التحديث الفاشل العُقدة إلى التوزيع بدلًا من تركها خارج الخدمة.
اختبار سريع
دعونا نتحقق من نمط النشر الآمن.
مراجعة
لتحقيق عدم التوقف، أخرج العُقدة، وانشر التحديث، وافحص صحتها، ثم أعد تفعيلها، عُقدةً واحدةً في كل مرة باستخدام serial وكتلة always. ✅
الأسئلة الشائعة
هل درس «إخراج العقد من Load Balancer ثم إعادة تفعيلها» مجاني؟
نعم — نص درس «إخراج العقد من Load Balancer ثم إعادة تفعيلها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ansible Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ansible Academy 4 دروس في المجموع.
ماذا ستتعلم في «إخراج العقد من Load Balancer ثم إعادة تفعيلها»؟
أخرج العقد وأعدها بأمان تتمرن على Ansible Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Ansible Academy؟
لا تُشترط خبرة سابقة. Ansible Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «إخراج العقد من Load Balancer ثم إعادة تفعيلها»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Ansible Academy هذا؟
نعم. كل درس في Ansible Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أتمتة أجهزة الشبكة باستخدام cli_command
- delegate_to وrun_once للتنسيق
- تنسيق طبقات الويب والتطبيق وقاعدة البيانات
- إخراج العقد من Load Balancer ثم إعادة تفعيلها