4 أدوات لتنفيذ الأوامر على خوادم Linux متعددة في نفس الوقت

المقال ، الذي ننشر ترجمته اليوم ، مخصص لتقنيات التنفيذ المتزامن للأوامر على عدة خوادم لينكس. هنا سنتحدث عن العديد من الأدوات المعروفة التي تنفذ مثل هذه الوظيفة. هذه المادة مفيدة لمسؤولي النظام الذين ، على سبيل المثال ، يضطرون بانتظام للتحقق من حالة العديد من الأنظمة البعيدة. من المفترض أن القارئ لديه بالفعل العديد من الخوادم التي تم تنظيم وصول SSH إليها. بالإضافة إلى ذلك ، أثناء العمل مع العديد من الأجهزة في وقت واحد ، من المفيد جدًا تكوين وصول SSH إليها عن طريق المفتاح ، بدون كلمة مرور . هذا النهج ، من جهة ، يحسن أمان الخادم ، ومن ناحية أخرى ، يسهل العمل معه.



1. PSSH - مواز SSH


PSSH عبارة عن مجموعة أدوات سطر أوامر مفتوحة المصدر مكتوبة بلغة Python ومصممة لتنفيذ أوامر SSH بالتوازي على العديد من أنظمة Linux. يعمل بسرعة ويسهل تعلمه. يتضمن PSSH أدوات مثل parallel-ssh ، التوازي scp ، parallel-rsync ، parallel-slurp parallel-nuke (للحصول على تفاصيل حول هذه الأدوات ، انظر الرجل).

قبل تثبيت parallel-ssh على نظام Linux ، يجب عليك أولاً تثبيت pip . إليك كيفية إجراء ذلك في توزيعات مختلفة:

 $ sudo apt install python-pip python-setuptools   #Debian/Ubuntu # yum install python-pip python-setuptools        #RHEL/CentOS # dnf install python-pip python-setuptools        #Fedora 22+ 

ثم parallel-ssh تثبيت parallel-ssh باستخدام pip :

 $ sudo pip install parallel-ssh 

بعد ذلك ، تحتاج إلى إدخال أسماء المضيفين أو عناوين IP لخوادم Linux البعيدة ومعلومات المنفذ في hosts (في الواقع ، يمكنك تسميتها أيا كان). هنا نحن بحاجة إلى هذا الأمر:

 $ vim hosts 

فيما يلي مثال لمحتويات مثل هذا الملف:

 192.168.0.10:22 192.168.0.11:22 192.168.0.12:22 

بعد إدخال كل ما هو ضروري في الملف ، حان الوقت لتشغيل parallel-ssh ، وتمرير هذه الأداة المساعدة اسم الملف باستخدام الخيار -h ، بالإضافة إلى الأوامر التي يجب تشغيلها على جميع الخوادم التي توجد عناوينها في hosts . يتم استخدام علامة -i للأداة لعرض ما يدخل في المخرجات القياسية وتدفقات الخطأ بعد الانتهاء من الأوامر على الخوادم.

قد يبدو الأمر إطلاق parallel-ssh مثل:

 $ parallel-ssh -h hosts "uptime; df -h" 

يوضح الشكل التالي استخدام الأداة المساعدة عند العمل مع ثلاثة خوادم.


تقوم الأداة الموازية ssh بتنفيذ الأوامر على خوادم متعددة

2. Pdsh - أداة شل المتوازية عن بعد


Pdsh ، مرة أخرى ، حل مفتوح المصدر ، وهو عبارة عن هيكل لتنفيذ الأوامر على خوادم Linux متعددة في نفس الوقت.

إليك كيفية تثبيت pdsh على توزيعات مختلفة:

 $ sudo apt install pdsh         #Debian/Ubuntu # yum install pdsh              #RHEL/CentOS # dnf install pdsh              #Fedora 22+ 

من أجل تنفيذ الأوامر على عدة خوادم ، يجب إضافة عناوين هذه الخوادم ، وكذلك عند استخدام parallel-ssh ، إلى الملف ، والذي يمكن أن يسمى أيضًا hosts . ثم تحتاج إلى تشغيل pdsh في النموذج التالي:

 $ pdsh -w ^hosts -R ssh "uptime; df -h" 

هنا ، يتم استخدام علامة -w للإشارة إلى الملف بقائمة الخوادم ، ويتم استخدام علامة -R للإشارة إلى وحدة الأوامر عن بُعد (من بين وحدات الأوامر البعيدة المتوفرة ssh و rsh و exec ؛ rsh استخدام rsh افتراضيًا). لاحظ الرمز ^ أمام اسم ملف قائمة الخادم.

إليك ما يبدو عليه العمل مع هذا الفريق.


تشغيل الأوامر على خوادم متعددة باستخدام pdsh

إذا قمت pdsh بـ pdsh ، إذا لم تحدد قائمة بالأوامر التي يجب تنفيذها على الخوادم ، فستبدأ هذه الأداة في الوضع التفاعلي. يمكن العثور على تفاصيل حول pdsh في صفحة الدليل المطابقة.

3. ClusterSSH


ClusterSSH هي أداة سطر أوامر لإدارة مجموعات الخادم. يطلق وحدة تحكم المشرف ، ولكل خادم ، نافذة منفصلة xterm . بعد ذلك ، يمكن لجميع هذه الخوادم تشغيل نفس الأوامر في نفس الوقت.

تثبيت clusterssh :

 $ sudo apt install clusterssh    #Debian/Ubuntu # yum install clusterssh         #RHEL/CentOS $ sudo dnf install clusterssh    #Fedora 22+ 

الآن ، للاتصال بالخوادم ، تحتاج إلى تشغيل أمر من النموذج التالي:

 $ clusterssh linode cserver contabo 

يمكنك استخدام هذا التصميم:

 $ clusterssh username@server1 username@server2 username@server3 

بعد ذلك ، سترى شيئًا مشابهًا لما هو موضح في الشكل التالي.


العمل مع خوادم متعددة باستخدام clusterssh

يتم تنفيذ الأوامر التي تم إدخالها في وحدة تحكم المشرف على جميع الخوادم. لتنفيذ الأوامر على خادم منفصل ، تحتاج إلى إدخالها في نافذة مفتوحة لها.

4. Ansible


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

تثبيت ansible :

 $ sudo apt install ansible       #Debian/Ubuntu # yum install ansible            #RHEL/CentOS $ sudo dnf install ansible       #Fedora 22+ 

بعد ذلك ، أضف عناوين الخوادم إلى الملف /etc/ansible/hosts .

 $ sudo vim /etc/ansible/hosts 

فيما يلي مثال لجزء من ملف مشابه يحتوي على عدة أنظمة متحدة في مجموعة webservers :

 # Ex 2: A collection of hosts belonging to the 'webservers' group [webservers] 139.10.100.147 139.20.40.90 192.30.152.186 

الآن ، من أجل الحصول على معلومات أمر uptime ومعرفة المستخدمين المتصلين بالمضيفين webservers مجموعة webservers ، يمكنك استخدام البناء التالي:

 $ ansible webservers -a "w " -u admin 

هنا ، يتم استخدام الخيار -a لتحديد الوسيطات التي تم تمريرها إلى الوحدة النمطية ، وتسمح لك العلامة -u بتحديد اسم المستخدم الافتراضي المستخدم للاتصال بالخوادم البعيدة عبر SSH.

يرجى ملاحظة أن ansible سطر الأوامر ansible تسمح ansible بتنفيذ أوامر واحد فقط في كل مرة.


التفاعل مع عدة خوادم باستخدام أدوات غير مرئية

الملخص


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

أعزائي القراء! هل تعرف أي أدوات مساعدة مفيدة تبسط إدارة عدد كبير من الخوادم؟

Source: https://habr.com/ru/post/ar426849/


All Articles