تجميع SSH وإعادة استخدام الاتصال
قلّل النفقات العامة لكل مهمة
تجميع SSH وإعادة استخدام الاتصال درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
يتراكم حمل SSH
قد تعني كل مهمة تسجيل دخول جديدًا ونسخ ملف وتنفيذًا عبر SSH. وعند ضرب ذلك في العديد من المهام والمضيفين، يهيمن الحمل على مدة التشغيل.
كيفية تشغيل المهمة عادةً
ينسخ Ansible وحدة إلى المضيف افتراضيًا، ويشغّلها، ثم ينظف الملفات. وتكلف كل خطوة جولة SSH ذهابًا وإيابًا يمكنكم غالبًا تجنبها.
إنقاذ المهمة عبر Pipelining
مع pipelining، يبث Ansible الوحدة عبر جلسة SSH الحالية بدلًا من كتابة ملف مؤقت أولًا، مما يقلل عدد الاتصالات لكل مهمة.
[ssh_connection]
pipelining = Trueعقبة requiretty
تحتاج Pipelining إلى sudo من دون TTY، ولذلك يجب ألا يفرض ملف sudoers البعيد requiretty. لا تواجه التوزيعات الحديثة مشكلة، لكن قد تحتاج بعض التوزيعات المحصّنة إلى تعديل.
إعادة استخدام الاتصال
يبقي OpenSSH الخيار ControlPersist اتصالًا رئيسيًا مفتوحًا، ويوجّه المهام اللاحقة عبره، متجاوزًا عملية المصافحة الجديدة في كل مرة.
ضبط ssh_args
يتيح Ansible إعادة استخدام الاتصال عبر ssh_args. وتحدد قيمة ControlPersist المدة التي يظل فيها المقبس المشترك حيًا بعد آخر مهمة.
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60sمكان وجود المقابس
يوجد الاتصال المشترك في ملف مقبس ضمن مسار التحكم. أبقوا هذا المسار قصيرًا لتجنب حد نظام التشغيل لطول اسم المقبس.
[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%rالمقارنة بين Pipelining وإعادة الاستخدام
يعالج كل منهما تكلفة مختلفة: إذ يقلل pipelining جولات الذهاب والإياب داخل المهمة الواحدة، بينما يعيد ControlPersist استخدام جلسة SSH عبر مهام عديدة.
استخدموهما معًا
تتضافر ميزة Pipelining والاتصالات المستمرة. ويُعد تفعيل كليهما من أكبر تحسينات السرعة وأقلها مخاطرة التي يمكنكم تقديمها إلى playbook كبير.
حقائق أسرع أيضًا
إذا لم تكونوا بحاجة إلى الحقائق، فحدّدوا gather_facts: false لتخطي وحدة الإعداد. وبذلك تزيلون خطوة مكلفة من بداية كل play.
قيسوا التحسن
فعّلوا رد النداء profile_tasks لقياس مدة كل مهمة. فهو يوضح بالضبط أين تذهب الثواني، لكي تتأكدوا من أن ضبط الإعدادات حقق فائدة فعلية.
تحقق سريع
تريدون أن تتجنب كل مهمة كتابة ملف مؤقت قبل تشغيلها عبر SSH.
مراجعة
فعّلوا pipelining لتقليل جولات الذهاب والإياب، وControlPersist لإعادة استخدام جلسات SSH. ويقلل الجمع بينهما كثيرًا حمل الاتصالات في عمليات play الكبيرة. ⚡
الأسئلة الشائعة
هل درس «تجميع SSH وإعادة استخدام الاتصال» مجاني؟
نعم — نص درس «تجميع SSH وإعادة استخدام الاتصال» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «تجميع SSH وإعادة استخدام الاتصال»؟
قلّل النفقات العامة لكل مهمة تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «تجميع SSH وإعادة استخدام الاتصال»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ضبط forks والتوازي
- الاستراتيجيات: linear وfree وhost_pinned
- تجميع SSH وإعادة استخدام الاتصال
- التنفيذ الدفعي المتدرّج باستخدام serial