تمرين - الاتصال بجهاز ظاهري لنظام Linux باستخدام SSH
لنتصل بالجهاز الظاهري لنظام Linux الخاص بنا باستخدام SSH، ونكّون Apache، حتى يكون لدينا خادم ويب قيد التشغيل.
الحصول على عنوان IP العام للجهاز الظاهري
في مدخل Azure من التمرين السابق، حدد "Go to resource". يظهر الجزء Overview للجهاز الظاهري الذي أنشأته للتو. يمكنك العثور على الجهاز الظاهري أسفل "All Resources" إذا كنت بحاجة إلى فتحه. يتيح لك جزء النظرة العامة ما يلي:
- التحقق مما إذا كان الجهاز الظاهري قيد التشغيل
- إيقاف الجهاز الظاهري أو إعادة تشغيله
- الحصول على عنوان IP العام للجهاز الظاهري
- الاطلاع على نشاط وحدة المعالجة المركزية والقرص والشبكة
حدد "Connect">"SSH" في الجزء العلوي.
ضمن الخطوة الرابعة، انسخ الأمر إلى الحافظة.

استخدمنا مسار ملف المفتاح الخاص الافتراضي لـ SSH عندما أنشأنا المفتاح المزدوج لـ SSH. لا نحتاج إلى تحديد مسار المفتاح الخاص في الأمر باستخدام العلامة
-iبمسار المفتاح الخاص. إذا أدخلتَ مساراً مختلفاً عند إنشاء مفتاح SSH المزدوج، يمكنك إضافة هذا المسار إلى الأمر.
الاتصال بـ SSH
ألصق الأمر من حافظتك إلى Azure Cloud Shell. احذف علامة
-iوالعنصر النائب عن مسار المفتاح الخاص وشغَّل الأمر. وينبغي أن يبدو شيئاً مثل العينة التالية مع عنوان IP مختلف واسم المستخدم.ssh azureuser@13.68.150.164في المرة الأولى التي نتصل فيها، سيسألنا SSH عن المصادقة مقابل مضيف غير معروف. يُبلغكَ SSH بأنك لم تتصل بهذا الخادم من قبل. إذا كان هذا صحيحاً، فهذا طبيعي تماماً، ويمكنك الاستجابة بـ "yes" لحفظ بصمة الخادم في ملف المضيف المعروف.
The authenticity of host '137.117.101.249 (137.117.101.249)' can't be established. ECDSA key fingerprint is SHA256:w1h08h4ie1iMq7ibIVSQM/PhcXFV7O7EEhjEqhPYMWY. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '137.117.101.249' (ECDSA) to the list of known hosts.أدخل عبارة المرور التي استخدمتها عند إنشاء المفتاح المزدوج لـ SSH.
في موجه أوامر shell لنظام Linux، جرب تنفيذ بعض أوامر Linux:
ls -la /: يظهر جذر القرصps -l: يظهر جميع العمليات قيد التشغيلdmesg: يسرد جميع رسائل kernellsblk: يسرد جميع أجهزة الحظر - سترى هنا محركات أقراصك
يتمثل الشيء الأكثر إثارة للاهتمام الذي يجب أن تلاحظه في قائمة محركات الأقراص في الجزء المفقود. لاحظ أن محرك البيانات الخاص بنا (
sdc) موجود ولكنه غير مثبت في نظام الملفات. أضافت Azure قرصاً ثابتاً ظاهرياً لكنها لم تُهيئه.
تهيئة أقراص البيانات
يجب تهيئة أي محركات أقراص إضافية تنشئها من البداية وتنسيقها. عملية التهيئة مطابقة للقرص الفعلي.
أولاً، حدد القرص الذي أنشأناه للتو. يمكنك أيضاً استخدام
dmesg | grep SCSI، والذي سيسرد جميع الرسائل من kernel لأجهزة SCSI.بعد معرفة محرك الأقراص (
sdc) الذي تحتاج إلى تهيئته، يمكنك استخدامهfdiskللقيام بذلك. ستحتاج إلى تشغيل هذا الأمر باستخدامsudo، وتزويد القرص الذي تريد تقسيمه. يمكننا استخدام الأمر التالي لإنشاء قسم أساسي جديد.(echo n; echo p; echo 1; echo ; echo ; echo w) | sudo fdisk /dev/sdcبعد ذلك، نحتاج إلى كتابة نظام ملفات إلى القسم باستخدام أمر
mkfs.sudo mkfs -t ext4 /dev/sdc1أخيراً، نحتاج إلى تركيب محرك الأقراص على نظام الملفات. لنفترض أنه سيكون لدينا مجلد
data. لنُنشئ مجلد نقطة التركيب ونُركب محرك الأقراص.sudo mkdir /data && sudo mount /dev/sdc1 /data
هيأنا القرص وركبناه. إذا كنت تريد مزيداً من التفاصيل حول هذه العملية، فراجع الوحدة النمطية إضافة الأقراص وتغيير حجمها في Azure virtual machines. تُغطى هذه المهمة بمزيد من التفاصيل هناك.
تثبيت البرامج على الجهاز الظاهري
كما ترون، SSH يُمكّنك من العمل مع Linux VM تماماً مثل الكمبيوتر المحلي. يمكنك إدارة هذا الجهاز الظاهري كما تفعل مع أي كمبيوتر Linux آخر: تثبيت البرامج وتكوين الأدوار وتعديل الميزات والمهام اليومية الأخرى. لنُركز على تثبيت البرامج للحظة.
يمكنك أيضاً تثبيت البرامج من الإنترنت عندما تكون متصلاً بالجهاز الظاهري عبر SSH. تتصل أجهزة Azure بالإنترنت افتراضياً. يمكنك استخدام الأوامر القياسية لتثبيت حزم البرامج الشائعة من المستودعات القياسية مباشرة. لنستخدم هذا النهج لتثبيت Apache.
تثبيت خادم ويب Apache
يتوفر Apache في مستودعات برامج Ubuntu الافتراضية، لذلك سنثبته باستخدام أدوات إدارة الحزم التقليدية:
ابدأ بتحديث فهرس الحزمة المحلية ليعكس أحدث تغييرات المصدر.
sudo apt-get updateبعد ذلك، ثبّت Apache.
sudo apt-get install apache2 -yيجب أن يبدأ تلقائياً - يمكننا التحقق من الحالة باستخدام
systemctl.sudo systemctl status apache2 --no-pagerالأمر
systemctlيُرجع شيئاً مثل الإخراج التالي.apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Mon 2018-09-03 21:00:03 UTC; 1min 34s ago Main PID: 11156 (apache2) Tasks: 55 (limit: 4915) CGroup: /system.slice/apache2.service ├─11156 /usr/sbin/apache2 -k start ├─11158 /usr/sbin/apache2 -k start └─11159 /usr/sbin/apache2 -k start test-web-eus-vm1 systemd[1]: Starting The Apache HTTP Server... test-web-eus-vm1 apachectl[11129]: AH00558: apache2: Could not reliably determine the server's fully qua test-web-eus-vm1 systemd[1]: Started The Apache HTTP Server.أخيراً، يمكننا محاولة استرداد الصفحة الافتراضية من خلال عنوان IP العام. ولكن، على الرغم من تشغيل خادم الويب على الجهاز الظاهري، لن تحصل على اتصال أو استجابة صالحة. هل تعرف سبب ذلك؟
نحتاج إلى إجراء خطوة أخرى حتى نتمكن من التفاعل مع خادم الويب. شبكتنا الظاهرية تحظر الطلب الوارد. يمكننا تغيير ذلك من خلال التكوين. لنُلقِ نظرة على السماح بالطلب الوارد بعد ذلك.
هل تحتاج إلى مساعدة؟ راجع دليل استكشاف الأخطاء وإصلاحها الذي نقدمه أو يمكنك توفير ملاحظات معينة عبر الإبلاغ عن مشكلة.