الإدارة المركزية لأجهزة لينكس
في حالة المعسكرات، فإننا نحتاج إلى إدارة عدد كبير من الأجهزة بالتوازي، نتأكد أننا ثبتنا 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