المقال ، الذي ننشر ترجمته اليوم ، مخصص لتقنيات التنفيذ المتزامن للأوامر على عدة خوادم لينكس. هنا سنتحدث عن العديد من الأدوات المعروفة التي تنفذ مثل هذه الوظيفة. هذه المادة مفيدة لمسؤولي النظام الذين ، على سبيل المثال ، يضطرون بانتظام للتحقق من حالة العديد من الأنظمة البعيدة. من المفترض أن القارئ لديه بالفعل العديد من الخوادم التي تم تنظيم وصول 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. إذا كنت تفكر في أتمتة مهام إدارة خوادم متعددة ، نأمل أن تجد هنا ما يناسبك.
أعزائي القراء! هل تعرف أي أدوات مساعدة مفيدة تبسط إدارة عدد كبير من الخوادم؟