برمجة الشبكات بالبايثون – كيف تُرسل أوامر لعدة أجهزة عبر الشبكة

2 4٬358

برمجة الشبكات بالبايثون أحد أهم المواضيع التي يبحث عنها الكثير من المبرمجين بسبب القدرة الكبيرة التي تقدمها لغة البايثون في هذا المجال.

يُوجد العديد والكثير من المكتبات الخاصة بالتعامل مع أجهزة السيرفر وأجهزة الشبكات باستخدام لغة البرمجة البايثون. في هذا المقال، نستطيع القول أن المكتبة التي نتحدث عنها تُساعد في التعامل مع الأجهزة عن بُعد، وقد لا تكون مُتخصصة 100% في موضوع برمجة الشبكات بالبايثون، إلا أنه يُمكن الاعتماد عليها بشكل قوي أثناء التواصل والتخاطب عن بعد مع الأجهزة التي تعدم اتصال ssh.

إستخدام ssh بطريقة بايثونية

في البداية أفترض عزيز القارئ أن لديك المعرفة المسبقة بأساسيات البايثون وخاصة طريقة تنصيب مكتباتها وكيفية إستدعاءها. تُعتبر مكتبة Fabric من المكتبات المشهورة في أتتمة مهام إدارة التطبيقات والسيرفرات عبر إتصال ssh، وهدفها الرئيسي هو اتاحة القدرة على ارسال أوامر Shell للأجهزة عبر الشبكة باستخدام اتصال ssh.

برمجة الشبكات بالبايثون بالمثال

لنفترض أنه لدينا جهازين عبر الشبكة، ونريد أن نتابع المساحة التخزينية بإستخدام امر df  مثلًا (أمر df هو أحد الأوامر المستخدمة في نظام لينكس ويُستخدم لمعرفة حالة السعة التخزينية).

يوجد لدينا طريقتان لمعرفة السعة التخزينية لكل جهاز،الطريقة الأولى هي الاتصال بكل جهاز على حدة عبر ال ssh وان ننفذ أمر df ونتابع مخرجات كل جهاز على حدة. الطريقة الثانية هي إستخدام نظام او أداة تسرع من العملية السابقة وتختصرها، وهنا يأتي دور ال Fabric لمحبي البايثون.

إستخدام مكتبة Fabric سهل جدا، كل ما علينا هو تنصيب المكتبة باستخدام أمر pip ومن ثم بناء ملف بإسم fabfile.py يحتوي الأوامر التي نريد تنفيذها على السيرفرات والأجهزة المستهدفة (في مثالنا هو امر df ) ومن ثم في شاشة الأوامر تستخدم أداة fab لتنفيذ الملف.

ما هي أداة fab ؟

يوجد طريقتان لإستخدام مكتبة Fabric، الأولى هي ان نستورد المكتبة في ملف البايثون الذي نريده، ومن ثم إستدعاء دوال المكتبة بالطريقة المناسبة، والطريقة الثانية هي إستخدام أداة fab.

أداة fab هي أداة تابعة لمكتبة ال Fabric يتم إستخدامها من شاشة الأوامر، وينبغي عند التعامل معها في هذا المثال وجود ملف fabfile.py في نفس مسار التشغيل.

لتكن بيانات الأجهزة كالتالي:

[spbtbl_sc id=1]

ندون الشيفرة التالية في ملف ونحفظها باسم fabfile.py.

from fabric.api import *
from fabric.context_managers import env
def servers():
servers_list = [['192.168.1.100','Ali','777777'],['192.168.1.100','Huda','A212121']]
for server in servers_list:
entry = str(server[1])+'@'+server[0]+':22')
env.hosts.append(entry)
env.passwords[entry] = server[2]

def command():
result = run('df –h')
fabric.py

 

 

 

ومن ثم في نفس مسار الملف fabfile.py نقوم من خلال شاشة الأوامر بتنفيذ الأمر:

>> fab servers command

ستكون نتيجة الأمر السابق هو نتيجة أمر df لكلا الجهازين المستهدفين، مع العلم أننا نستطيع التعامل مع هذه النتيجة وتحليلها وحفظها في قاعدة بيانات او نشرها في صفحة او داخل تطبيق معين.

في الختام، شرحنا لكم مكتبةً نرى أنها تندرج تحت عنوان برمجة الشبكات بالبايثون ، تساعدك في الاتصال وال يتمنى فريق بايثونات لكم وقتًا بايثونيًا ممتعًا. لطفًا لا تنسى متابعتنا على تويتر وفيسبوك.

2 Comments
  1. ابراهيم علي عسيري says

    السلام عليكم

    المهندس العزيز / ابراهيم

    تحية طيبة وبعد
    هل ممكن تستخدم لغة بايثون في الشبكات او بمعنى اصح في برمجه الراوترات غير سيسكو او حتى سيسكو و تكون لغة رسيمة للتخاطب مع الراوترات اذا غير ممكن اش الاسباب
    ياليت تفيدني باجابة لانها تعني لي الكثير في دراستي في دعم انظمة الشبكات
    شاكر و مقدر لك

    1. ابراهيم البحيصي says

      أهلا بك ابراهيم
      يُوجد العديد من المكتبات التي يُمكن استخدامها في التخاطب مع الراوترات وأجهزة Switch. بعض الأجهزة من سيسكو وغيرها قد تُضمن في نظامها موديلات او أنظمة داخلية تعمل باستخدام البايثون مثل بعض نُسخ Alcatel Switch التي فيها Python Scripting Feature وقد يكون غيره الكثير (لست على اطلاع كبير). وجود البايثون داخل هذه الأجهزة يُعطيها قوة وديناميكية في عملياتها وبياناتها.
      بالمختصر وللإجابة على سؤالكم: نعم يُمكن استخدام البايثون (وبقوة) في الشبكات وبرمجة الراوترات.

      كل التوفيق لكم

اترك ردًا

Your email address will not be published.