الإدارة المركزية لأجهزة لينكس

من ويكي أضِف
اذهب إلى: تصفح، ابحث

في حالة المعسكرات، فإننا نحتاج إلى إدارة عدد كبير من الأجهزة بالتوازي، نتأكد أننا ثبتنا openssh-server على كل الأجهزة، وعندها، وعلى نطاق كامل الشبكة يمكن القيام بمسح لمعرفة مفاتيح ssh ، نضع كل العنوانين التي يمكن ان يكون عليها الأجهزة في ملف بحيث يكون كل عنوان على سطر، فمثلا:

for i in {50..150} ; do echo 10.0.0.$i >> /tmp/hosts10.0.0.50-150 ; done

ثم نقوم بمسح باحثين عن المفاتيح العامّة لهذه العنوانين ونلحقها بقائمة المفاتيح المعروفة:

ssh-keyscan -4 -f /tmp/hosts10.0.0.50-150 >> ~/.ssh/known_hosts

الآن يمكننا الدخول على الأجهزة وتشغيل أوامر عليها بشكل متوازي بإستخدام أي أداة تسمح بعمل ssh بشكل متوازي مثل parallel-ssh والتي يمكن تثبيتها بإستخدام الأمر:

apt-get instsll parallel

الآن يمكننا عمل التجربة الأولى:

ويمكننا الآن أيضا عرض كل عنوان أي بي مع إسم الجهاز (بفرض أن بطاقة الشبكة على جميع الأجهزة باسم eth0)

parallel-ssh -ladefadmin -A -o /tmp -h /tmp/hosts10.0.0.50-150 "ifconfig eth0 | grep inet | cut -d: -f2 | cut -d' ' -f1 ; hostname"

النتائج ستكون بملفات في مجلد /tmp

لإزالة الحاجة لكلمة مرور ، يمكننا أن تطبق:

 cat /tmp/50-150  | parallel  ssh-copy-id

لإضافة حجوزات لعناوين الأيبي، نحتاج إلى عنوان العتاد الشبكي mac address وإسم الجهاز، يمكن إعتمادا على التجارب أعلاه القيام بالآتي:

parallel-ssh -ladefadmin -o /tmp/mac -h /tmp/50-150 "MAC=\$(ifconfig p2p1 | grep HWaddr | cut -d' ' -f11); echo \$MAC \$HOSTNAME"
cat /tmp/mac/*

ويمكن أيضا إستخدام avahi

avahi-resolve -4 -n lab1-pc5.local
echo -e lab1-pc{1..12}.local|tr ' ' '\n' | parallel avahi-resolve -n -4 {}

يمكن إستخدام الأوامر دون إضافتها لخادم أسماء مركزي في حال كان nss يستخدم avahi و mDNS

ping lab1-pc1.local