البحث في الموقع
المحتوى عن 'virtual machine'.
-
في سلسلة المقالات هذه سنتعلم معًا أساسيات البرمجة بلغة Java، وأثناء ذلك سنتعلم أيضًا طرائق جديدة للتفكير، وتحليل المشكلات إلى أجزاء صغيرة، وكتابة خوارزميات وحلول منهجية لها. إن مهارة حل المشكلات هي أهم مهارة لأي طالب علوم حاسوب، وكما سنرى معًا، تعلم البرمجة سيفيد كثيرًا في تطوير هذه المهارة. ما هي البرمجة؟ البرنامج هو سلسلة من التعليمات التي تحدد كيفية تنفيذ عملية حسابية. قد تكون العملية الحسابية رياضية، مثل حل جملة معادلات أو إيجاد جذور كثير حدود. وقد تكون أيضًا معالجة رموز، مثل البحث عن نص واستبداله في مستند أو ترجمة برنامج آخر. تختلف التفاصيل بين لغة وأخرى، لكن بعض التعليمات الأساسية تظهر في جميع لغات البرمجة تقريبًا. الإدخال (input): تحصيل البيانات من لوحة المفاتيح، أو من ملف، أو من حساس، أو من جهاز آخر. الإخراج (output): عرض البيانات على الشاشة، أو إرسالها إلى ملف أو إلى جهاز آخر. الحساب (math): تنفيذ العمليات الحسابية الأساسية مثل الجمع والقسمة. اتخاذ القرارات (decisions): التحقق من شروط معينة وتنفيذ التعليمات المناسبة لكل حالة. التكرار (repetition): تنفيذ عمل ما بصورة متكررة، عادة مع وجود تغيير. صدق أو لا تصدق، هذا كل شيء تقريبًا. أيَّ برنامج استعملته من قبل، مهما كان معقدًا، بُنِيَ من تعليمات صغيرة تشبه هذه التعليمات. وهكذا يمكنك اعتبار البرمجةبأنها عملية تجزئة المهام الكبيرة والمعقدة إلى مهام جزئية أصغر وأصغر. وتستمر العملية حتى نصل إلى مهام جزئية بسيطة بما يكفي لتنفيذها بالتعليمات البسيطة التي يوفرها الحاسوب. ننصحك بالرجوع إلى مقال تعلم البرمجة لمزيد من التفاصيل حول البرمجة عمومًا وكيفية دخول المجال. ما هي علوم الحاسوب؟ أحد أهم نواحي كتابة البرامج هو تحديد طريقة حل مشكلة ما، خصوصًا إذا تعددت الحلول. مثلًا، هناك طرق عديدة لترتيب قائمة من الأرقام، ولكل طريقة مزاياها. حتى نحدد أي طريقة هي الأفضل في وضع معين، نحتاج لتقنيات لتوصيف وتحليل الحلول بشكل صيغ منتظمة. علوم الحاسوب هي علوم الخوارزميات، وتشمل تحليل الخوارزميات واكتشاف خوارزميات جديدة. الخوارزمية هي سلسلة خطوات تحدد طريقة حل مشكلة ما. بعض الخوارزميات أسرع من غيرها، وبعضها تستهلك مساحة أقل في ذاكرة الحاسوب. سوف تتعلم كيف تفكر كعالم حاسوب أثناء تعلمك كيفية تطوير خوارزميات لحل مشكلات لم تحلها من قبل. تصميم الخوارزميات وكتابة الشفرات البرمجية عمليتان صعبتان ومعرضتان للأخطاء. تدعى الأخطاء البرمجية bugs (عِلل برمجية)، وعملية تتبعها وتصحيحها تدعى debugging. ستطور مهارات جديدة في حل المشكلات أثناء تعلم تصحيح الأخطاء في البرامج التي تكتبها. عليك التفكير بإبداع عندما تواجهك أخطاء غير متوقعة. ورغم أن حل الأخطاء البرمجية قد يكون محبطًا، إلا أنه جزء مثير وفيه تحدٍ وذكاء. اكتشاف الأخطاء يشبه عمل التحري في بعض نواحيه. حيث تواجهك الأدلة، وعليك استنتاج العمليات والأحداث التي أدت إلى النتائج التي تراها. أحيانًا يقود التفكير بتصحيح البرامج وتحسين أدائها إلى اكتشاف خوارزميات جديدة. ننصح بقراءة مقال المدخل الشامل لتعلم علوم الحاسوب للمزيد من التفاصيل. لغات البرمجة إن لغة البرمجة التي ستتعلمها هي Java، وهي لغة عالية المستوى (High-level language). هناك لغات أخرى عالية المستوى لعلك سمعت بها مثل Python، أو C و C++، أو Ruby، أو Javascript. يجب ترجمة البرامج المكتوبة بلغات عالية المستوى إلى لغة منخفضة المستوى (low-level language) أو ما يدعى ”لغة الآلة“، قبل أن يستطيع الحاسوب تشغيلها. تحتاج هذه الترجمة وقتًا، لكن هذه سيئة بسيطة للغات عالية المستوى. في المقابل، للغات عالية المستوى حسنتين: كتابة البرامج بلغة عالية المستوى أسهل بكثير. كتابة البرامج تأخذ وقتًا أقل، وتكون البرامج أقصر وأسهل للقراءة، ومن المرجح أكثر أن تكون صحيحة. اللغات عالية المستوى محمولة (portable)، بمعنى أنه يمكن تنفيذ البرامج المكتوبة بها على أنواع مختلفة من الحواسيب دون أي تعديلات أو بعد عمل تعديلات قليلة. أما البرامج المكتوبة بلغة منخفضة المستوى فلا يمكنها العمل إلا على نوع واحد فقط من الحواسيب، ويجب إعادة كتابتها قبل أن نتمكن من تشغيلها على جهاز آخر. هناك نوعين من البرامج التي تترجم اللغات عالية المستوى إلى لغات منخفضة المستوى: المفسرات والمترجمات. يقرأ المفسر (interpreter) البرامج المكتوبة بلغات عالية المستوى وينفذها، أي أنه ينفذ التعليمات التي يمليها البرنامج. يعالج المفسر البرنامج في أجزاء صغيرة، حيث يقرأ بعض السطور ثم ينفذ التعليمات ويعود لقراءة سطور أخرى وهكذا. يبين الشكل 1.1 بنية المفسر. على صعيد آخر، يقرأ المترجم (compiler) البرنامج كله ويترجمه دفعة واحدة قبل بدء تنفيذ البرنامج. في هذه الحالة، يدعى البرنامج المكتوب بلغة عالية المستوىبالشفرة المصدرية (source code)، ويدعى البرنامج المترجم بالشفرة الهدف (object code) أو الملف التنفيذي (executable). بعد ترجمة البرنامج، يمكنك تنفيذه بشكل متكرر دون الحاجة لأي ترجمة أخرى. ونتيجة لذلك، تعمل البرامج المترجمة بصورة أسرع من البرامج المفسرة. لغة Java مجمّعة ومفسرة معًا. فبدلًا من ترجمة البرامج مباشرة إلى لغة الآلة، يولد مترجم Java بايت كود (byte code). شفرة بايت سهلة وسريعة التفسير مثل لغة الآلة، لكنها محمولة أيضًا، حيث يمكننا ترجمة برنامج Java على أحد الأجهزة، ثم ننقل شفرة بايت إلى جهاز آخر، ثم نشغل شفرة بايت على الجهاز الثاني. يدعى المفسر الذي ينفذ شفرة بايت "بآلة Java الافتراضية" (Java Virtual Machine أو اختصارًا JVM). يبين الشكل 1.2 مراحل هذه العملية. ورغم أن هذه العملية قد تبدو معقدة، إلا أن معظم بيئات البرمجة (أحيانًا تدعى بيئات التطوير)، تجري هذه الخطوات تلقائيًا بدلًا منك. سيكلفك الأمر عادة ضغطة زر واحدة أو طلب أمر واحد لترجمة برنامجك وتنفيذه. من جهة أخرى، من المهم أن تعرف الخطوات التي تجري وراء الستار، لكي تتمكن من معرفة سبب المشكلة في حال وقوع أي خطأ. ترجمة -وبتصرف- لجزء من الفصل الأول من كتاب Think Java: How to Think Like a Computer Scientist لكاتبيه Allen B. Downey و Chris Mayfield. اقرأ أيضًا تعلم البرمجة المدخل الشامل لتعلم علوم الحاسوب
-
يتيح برنامج Oracle VirtualBox الكثير من الإمكانيّات لبناء أنظمة افتراضية للاستخدام الشخصيّ وهو ما يوفّر عليك عناء إعداد أمور كانت ستكلفك الكثير من الوقت والجهد. شرحنا في درس سابق كيفية تثبيت توزيعة RedHat باستخدام هذا البرنامج. سنشرح في هذا المقال كيف يمكننا بناء شبكة داخليّة افتراضيّة يمكن استخدامها لمحاكاة شبكة داخليّة محليّة Local area network ,LAN. يوضح الرسم التالي الهدف النهائي الذي نريد الوصول إليه: توجد آلتان افتراضيتان، لكلّ منهما واجهتا شبكة. نستخدم الواجهة الأولى لكلّ آلة افتراضيّة للاتصال بشبكة الإنترنت عبرالمرور بواجهة شبكة خاصّة ببرنامج VirtualBox تسمّى virbr0. تنشئ الواجهة الثانيّة على الآلة الافتراضية شبكة داخليّة مع الواجهة الثانيّة على الآلة الافتراضية الأخرى. إن أردت الاكتفاء بإنشاء شبكة داخليّة بين الآلات الافتراضيّة فيمكنك تجاوز الخطوة الثانيّة من الخطوات أعلاه وتنفيذ الخطوتين الأولى والثالثة؛ ولكن لن يكون بمقدور أي من النظامين في هذه الحالة الاتصال بالإنترنت وما يعنيه ذلك من عدم القدرة على تحديث الحزم أو تثبيت حزم جديدة. يحاكي هذا المخطّط عمل الخواديم في بيئة إنتاج فعليّة حيث توجد عادة أكثر من بطاقة شبكة على الخادوم، ولكلّ بطاقة استخدام معيَّن؛ مما يتيح للخادوم الاتصال بأكثر من شبكة (شبكات داخليّة عدّة أو شبكة داخليّة وأخرى عامّة). يفترض هذا الدرس وجود توزيعة RedHat Enterprise Linux مثبّتة كما هو مشروح في الدرس المشار إليه سابقا. تبقى الخطوات التالية صالحة مهما كان النظام المثبّت مع تغيير يسير في الخطوات الأخيرة (تفعيل البطاقات على RedHat Enterprise Linux). تهيئة VirtualBox لإنشاء شبكة محلية سنحتاج أولا إلى إنشاء نظام افتراضي ثان بعد النظام الافتراضي الذي أنشأناه في درس تثبيت RHEL. يتيح VirtualBox آليّة سريعة لإنشاء الأنظمة الافتراضيّة انطلاقا من أنظمة موجودة، تُسمّى هذه الآلية بالاستنساخ Cloning. تظهر بالنقر بالجانب الفأرة الأيمن على النظام الافتراضي الذي نريد استنساخه قائمة ظرفيّة نختار منها استنسخ Clone. تظهر نافذة جديدة، أدخل فيها اسما تختاره للنظام الذي نريد إنشاءه. تأكد من تحديد خيّار أعد تهيئة عناوين MAC لجميع البطاقات Reinitialize the MAC address for all network cards. يوجد خياران للاستنساخ؛ استنساخ كامل Full أو استنساخ رمزي Linked. يُنشأ في الحالة الأولى نظام جديد بالكامل (أقرص افتراضية منفصلة) في حين ينشئ الخيار الثاني آلة افتراضية جديدة ولكنها مجرد وصلة للنظام المستنسَخ. نختار الاستنساخ الكامل ثم ننقر على زر Clone. تأخذ العمليّة بضعة دقائق نحصُل بعدها على نظام افتراضي جديد. إعداد بطاقات الشبكة على VirtualBox لدينا الآن نظامان افتراضيّان (آلتان) سنعدّهما للحصول على المخطّط الذي تحدثنا عنه أعلاه. تُطبَّق الخطوتان التاليتان على كل من النظامين. حدّد النظام الافتراضي ثمّ زرّ الإعدادات Settings، تظهر نافذة جديدة اختر منها قسم الشبكة Network. توجد في هذا القسم أربع بطاقات شبكة (يُشار إليها بـ Adapter). حدّد خيار Enable network adapter (فعِّل بطاقة الشبكة) لتفعيل البطاقة وتأكد من أن خيار وصل الكابل (Cable connected) محدّد. يعدّ VirtualBox مبدئيا بطاقات الشبكة للعمل وفق وضع ترجمة عناوين الشبكة Network address translation, NAT. يعني هذا أن البطاقة سيكون لديها عنوان IP خاصّ غير مرئيّ من الخارج ولكنها تستطيع التواصل مع الخارج عبر VirtualBox الذي يعمل وسيطا بين الاثنين. هذه هي نفس الآلية التي يعمل بها الموجّه الموجود في المنزل عادة (يُترجم العناوين بين حاسوبك ومزوّد خدمة الإنترنت). يمكّنك هذا الإعداد من الاتصال بالإنترنت إذا كان حاسوبك متصلا بها. لاحظ عنوان MAC الخاصّ بالبطاقة؛ فربما تحتاجه للتعرف عليها من داخل نظام التشغيل في ما بعد. ننتقل للبطاقة الثانيّة (Adapter 2). الأمر المختلف هنا مقارنة بالبطاقة السابقة هو أننا اخترنا وضع Internal network (شبكة داخليّة) مع السماح بتنقل البيانات بين الآلات الافتراضية عبر هذه البطاقة (Allow VMs). كرّر نفس الإعدادات على النظام الافتراضي الآخر. تفعيل بطاقات الشبكة من داخل النظام الإعدادات جاهزة الآن من جانب VirtualBox؛ بقي أن نشغّل الآلتين ونفعّل البطاقات على مستوى نظام التشغيل ثم نختبر الاتصال بينها. الخطوات المشروحة هنا مطبقة على توزيعة RedHat Enterprise Linux بواجهة رسوميّة؛ يمكن تكييفها مع عمل أي نظام تشغيل آخر. كرّر الخطوات على كلّ آلة افتراضية. اختر قائمة التطبيقات Applications، ثم أدوات النظام System tools ثم الإعدادات Settings ثم الشبكة Network. ستجد أن النظام اكتشف وجود بطاقتين كما يظهر في يسار الصورة (قد تختلف أسماء البطاقات لديك). يمكن ملاحظة أن إحدى البطاقتين تأخذ عنوان IP تلقائيا فور تفعيلها، بينما لا تُظهر الأخرى سوى عنوان MAC الخاصّ بها. يمكنك استنتاج أن البطاقة التي تأخذ عنوانا تلقائيا هي البطاقة المعدّة لاستخدام ترجمة عناوين الشبكة، بينما الأخرى هي تلك المعدّة لإنشاء شبكة داخليّة دون أن يكون لديها مصدر يمنحها عنوان IP. راجع عناوين MAC في إعدادات VirtualBox وقارنها بالعناوين التي يظهرها نظام التشغيل للتأكد. بقي لنا ضبط البطاقة الداخليّة بإعطائها عنوان IP وقناع شبكة مناسب. حدّد بطاقة الشبكة الداخليّة (enps08 في المثال لديّ) وفعّلها ثم انقر على زرّ Add profile الموجود لتظهر نافذة جديدة. عدّل الإعدادات كما في الصورة. اخترتُ العنوان 192.168.2.100 بالنسبة للجهاز الافتراضي الأول، و192.168.2.200 بالنسبة للجهاز الثاني. قناع الشبكة في الحالتين هو 255.255.255.0. يمكن التأكد من أن البطاقتين توجدان على نفس الشبكة الداخليّة باستخدام أمر ping. على الجهاز الأول (ذي العنوان 192.168.2.100 ): ping 192.168.2.200 PING 192.168.2.200 (192.168.2.100) 56(84) bytes of data. 64 bytes from 192.168.2.200: icmp_seq=1 ttl=64 time=0.760 ms 64 bytes from 192.168.2.200: icmp_seq=2 ttl=64 time=0.254 ms (...) على الجهاز الثاني (ذي العنوان 192.168.2.200 ): ping 192.168.2.100 PING 192.168.2.100 (192.168.2.100) 56(84) bytes of data. 64 bytes from 192.168.2.100: icmp_seq=1 ttl=64 time=0.980 ms 64 bytes from 192.168.2.100: icmp_seq=2 ttl=64 time=0.348 ms (...) أي أن كلا من البطاقتين يمكنها الاتصال بالأخرى.
-
توفّر Red Hat امتيازات خاصّة للمطوّرين يمكنك الاستفادة منها والتسجيل للحصول على رابط تنزيل ملف ISO. يمكن استخدام نفس الحساب للاشتراك والحصول على التحديثات من الشركة في إطار الاستخدام الشّخصي. ستحتاج قبل البدء في تثبيت توزيعة Red Hat Enterprise Linux إلى تنزيل الملفّ من موقع Red Hat. سنشرح في هذا المقال طريقة التثبيت باستخدام برنامج Oracle VirtualBox للأنظمة الوهمية الذي نفترض تثبيته لديك. يُنصَح بتوفّر الميزات التالية -على الأقل- من أجل تشغيل RHEL على النحو الأمثل: جهاز بمعماريّة 64 بت بعتاد يدعم الأنظمة الوهميّة (Intel VT-X أو AMD-V). نظام تشغيل يدعمه Virtualbox مثل Windows 7 ،OS X 10.8 ،Ubuntu 12.04 أو أحدث. ذاكرة عشوائية قدرها 8 غيغا بايت. مساحة قرص صلب متاحة قدرها 24 غيغابايت. إعداد VirtualBox لتثبيت RHEL نتوقّف قبل البدء في خطوات التثبيت لشرح مصطلحين يردان كثيرا عند الحديث عن الأنظمة الوهمية: المُضيف Host والضّيف Guest. في هذا الإطار نطلق عبارة المُضيف على نظام التشغيل الذي نُثبّت عليه برنامج VirtualBox بينما نعني بالضّيف نظامَ التشغيل الذي سنثبته داخل VirtualBox. هذا الأخير ليس له وجود بدون VirtualBox الذي يلعب دور الوسيط بينه وبين نظام التشغيل المثبت فعلا. في حالتي النظام المُضيف هو أوبنتو 14.04 بينما سنثبت RHEL كنظام ضيف. نبدأ بتشغيل VirtualBox ثم نضغط على زر New (جديد) لإنشاء نظام وهمي جديد؛ تظهر نافذة جديدة. نختار اسم RHEL للجهاز الوهميّ الجديد وسيتعرّف Virtualbox تلقائيا على نوع (Type) نظام التشغيل وإصداره (Version). ننتقل للخطوة الموالية (Next) لاختيار مقدار الذاكرة العشوائيّة للنّظام الوهميّ؛ الحد الأدنى هو 2096 ميغابايت (2 غيغابايت). لديّ ذاكرة عشوائية قدرها 8 غيغابايت خصصتُ منها 4 للجهاز الوهمي الذي ستعمل عليه RHEL. ثم يأتي دور القرص الصلب الوهمي. حدّد خيار Create a virtual hard disk now (أنشئ قرصا صلبا وهميًّا الآن) ثم انقر على الزر Create (أنشئ). حدّد خيار (VDI (VirtualBox Disk Image وهي صيغة الأقراص الصّلبة الوهمية المستخدمة مبدئيا في Virtualbox. انقر على التالي للخطوة الموالية. يوجد خياران؛ إما حجز مساحة ثابتة مقدّما Fixed size أو جعلها ديناميكية Dynamically allocated. في الحالة الأولى تُحجز مساحة (20 غيغابايت مثلا) على القرص الصّلب للنظام المضيف وتُخصَّص للنظام الضّيف؛ أما في الحالة الثانية فإن استغلال القرص الصلب للنظام المضيف يكون حسب الحاجة في حدود المساحة المخصَّصة. الطريقة الأولى أبطأ أثناء الحجز وقد يستغرق إعداداها بضعة دقائق، ولكنها أسرع في الاستعمال؛ والثانية أسرع أثناء الإعداد وأبطأ أثناء الاستخدام. تقترح النافذة التالية مسارا على النظام المضيف لحفظ القرص الوهميّ؛ يمكنك تغييره إن شئت. يوجد أيضا خيار لمساحة القرص الصّلب الوهمي. يجب أن تخصّص على الأقل 20 غيغابايت للنظام الوهميّ ويمكن أن تزيدها إن كنت تخطّط للعمل بكثافة على النظام (تثبيت الكثير من البرامج مثلا). بالنسبة لي اخترتُ 30 غيغابايت. نحصُل بالوصول إلى هذه النقطة على جهاز وهميّ قاعدي. نحتاج لبضعة إعدادات أخرى. ملحوظة: ربما تلاحظ وجود أكثر من جهاز وهمي في الصّورة أعلاه. يتيح VirtualBox إنشاء أكثر من نظام ضيف على نفس المُضيف. اختر الجهاز الوهمي الذي أنشأناه للتّو (RHEL) من القائمة الموجودة في يسار الشاشة ثم انقر على خانة الإعدادات العامة General في يمين الشاشة. تظهر نافذة الإعدادات؛ اختر منها تبويب Advanced. يسمح هذا الإعداد بتشارك الحافظة Clipboard بين النظامين الضّيف والمضيف. سنحتاج لتفعيل إضافات VirtualBox حتى يمكننا النسخ واللّصق بين الاثنين (خطوة موالية). يعمل الجهاز الوهمي مبدئيّا على معالج واحد؛ إلا أن بإمكانك جعله يعمل على أكثر من معالج إن كانت لديك معالجات أو أنوية متعدّدة. اختر System (النظام) من القائمة اليسرى في نافذة الإعدادات العامّة ثم تبويب المعالج Processor في الجانب الأيمن. اختر العدد المناسب بالنسبة لك (اخترتُ أن يعمل النظام الوهمي على معالجين؛ من أصل 4 متوفّرة). نأتي الآن لإعداد الجهاز الوهمي للإقلاع على ملف ISO الذي نزّلناه من موقع Red Hat. اختر Storage (التخزين) من القائمة اليسرى في نافذة الإعدادات العامّة ثم في الجانب الأيمن من النافذة، في مجموعة Storage tree (تفرعات التخزين) اختر أيقونة القرص الضوئي CD الموجودة تحت Controller: IDE (حيثُ توجد عبارة فارغ Empty دلالة على أننا لم نخصّص الإعداد بعد). انقُر على أيقونة القرص الضوئي ضمن مجموعة Attributes (الخصائص) يمينَ الشّاشة وانقر على خيار Choose Virtual Optical Disk File (اختر ملفّ قرص ضوئي وهمي). ستظهر نافذة انتقل عبرها إلى مكان ملف توزيعة RHEL الذي نزلته سابقا. يظهر اسم الملف rhel-server-7.2-x86_64-dvd.iso الآن في تفرّعات التخزين أسفل عبارة Controller: IDE بدلا من عبارة فارغ (Empty). بقيت لنا خطوة أخيرة قبل البدء في تثبيت التوزيعة؛ هذه الخطوة اختيارية ولكنها مفيدة. سننشئ مجلّدا مشتركا بين النظامين، الضيف والمضيف وهو ما يسهّل تشارك الملفات بين الاثنين. اختر Shared folders (المجلدات المشتركة) ضمن القائمة اليسرى في نافذة الإعدادات العامّة للجهاز الوهمي RHEL. انقر على زر الإضافة الموجود في يمين النافذة لتظهر نافذة صغيرة. حدّد في الحقل الأول Folder path مسار المجلّد على النظام المضيف ثم حدد له اسما بدون مساحات في الحقل الثاني. حدّد خيار Auto-mount (تركيب تلقائي) لكي يُركَّب الملف مع تشغيل النّظام. نحن الآن جاهزون لتثبيت RHEL. تثبيت RHEL على VirtualBox نختار النظام الوهميّ الذي أعددناه في الخطوات السابقة ثم ننقر على زر Start (ابدأ). يحمّل الجهاز الوهميّ ملف التوزيعة من القرص الضّوئي الوهميّ وتبدأ بالتالي عمليّة التثبيت كما لو كنا أمام جهاز حاسوب حقيقي. يظهر خياران في الشاشة؛ الأول لبدء تثبيت التوزيعة مباشرة والثاني لاختبار ملف ISO ثم بدء التثبيت. نختار الثاني للتحقّق من أنّه لا توجد عيوب في الملفّ. ملحوظة: اضغط على زرّ Ctrl الأيمن في لوحة المفاتيح لجعل المؤشّر يعمل داخل الإطار المخصّص للنظام الضّيف؛ ثم اضغط عليه مرةً أخرى إذا أردت إعادة المؤشّر للنظام المضيف. ينفّذ النظام بضعة عمليات للتحقّق من سلامة ملف ISO الخاصّ بالتوزيعة ثم تبدأ عمليّة التثبيت. الخطوة الأولى هي اختيار اللغة وتموضع لوحة المفاتيح. يأتي بعد اختيّار اللغة ملخَّص للتثبيت؛ يمكنك فيه اختيّار منطقة التوقيت، اللّغة، لوحة المفاتيح وإعدادات أخرى. بالنقر على إحدى الفقرات تُفتَح نافذة لإعدادها ثم بعد الانتهاء من الإعداد يوجد زر Done (تمّ) للعودة للملخَّص. سنذهب لزرّ Software selection (اختيّار البرامج) وننقر عليه. نحدّد خيار Server with Gui (خادوم بواجهة رسوميّة) من لائحة Base Environment (البيئة القاعديّة) الموجودة يسار الشاشة. توجد يمين الشاشة لائحة بإضافات برمجية (حزم برامج) يمكن الاختيار بينها للتثبيت مع البيئة القاعديّة المحدّدة. اختر من بينها Development tools (أدوات تطوير) التي سنحتاجها لاحقا ثم انقر زرّ Done للعودة إلى الملخّص. انقر على زرّ Network amd Hostname (الشبكة واسم المضيّف) في نافذة الملخّص لإعداد الاتّصال بالشبكة. اختر واجهة الشبكة من اللّائحة على اليسار ثم فعّل الاتّصال بالنقر على زر On. عطّل بالعودة إلى نافذة الملخّص استخدامَ KDump بنزع تحديد Enable kdump في نافذة الإعداد الخاصّة به من أجل ربح قليل من الذاكرة العشوائية. بقي لنا إعداد القرص الصّلب الذي سنثبّت عليه النظام لذا نختار زرّ Installation destination (وجهة التثبيت) في نافذة الملخّص. بما أن لدينا قرصا وهميّا فسنختاره كاملا للتجزئة. ملحوظة: ينبغي الحذر في هذه الخطوة إن كنت تثبّت التوزيعة على جهاز فعلي وليس وهميا به نظم تشغيل أخرى. ربما يؤدي اختيار تجزئة غير مناسبة إلى محو بياناتك الموجودة على القرص. يمكننا الآن بعد أن أكلنا إعداد الوجهة النقر على زرّ Begin installation لبدء التثبيت. تبدأ عملية تثبيت RHEL وتظهر نافذة جديدة. يُطلَب منّا أثناء نسخ الملفّات وتثبيت الأدوات التي اخترناها إعدادُ حساب المستخدِم الجذر Root ومستخدم آخر للمهامّ غير الإدارية. انقر على زرّ Root password (كلمة سر الجذر) لضبط كلمة السّر الخاصّة بالمستخدم الجذر؛ ثم بعد إتمام ضبطها انقر على زرّ User creation (إنشاء مستخدِم) لإعداد مستخدم آخر غير المستخدم الجذر. تبدو الصّورة على النحو التالي بعد إكمال الإعداديْن. انتظر حتى إكمال نقل الملفات وتطبيق الإعدادات (قد يستغرق ذلك دقائق طويلة حسب جهازك) ثم انقر على زرّ Reboot (أعد التشغيل). تظهر - بعد إعادة تشغيل النظام في الخطوة السّابقة - النافذة التالية والتي تطلُب قراءة شروط استخدام RHEL والموافقة عليها. اكتب الرقم 1 ثم اضغط على زر Enter لعرض معلومات الرّخصة. اكتب الرقم 2 ثم اضغط Enter لقبول الرخصة. اضغط على الزّر c في لوحة المفاتيح للخروج من شروط الاستخدام. اضغط على الزّر c لاستكمال التثبيت. ملحوظة: قد لا تظهر النافذة أعلاه؛ وتظهر بدلا منها نافذة رسومية يمكن من خلالها قراءة الترخيص وقبوله. يوجد أيضا في نفس النافذة زر للوصول المباشر إلى مدير الاشتراكات (لتسجيل الاشتراك كما في الخطوة الموالية أدناه). تظهر بعد اكتمال عمليّة الإقلاع نافذة دخول باسم الحساب العاديّ الذي أنشأته أثناء التثبيت. بقيت لنا خطوة أخيرة وهي تسجيل نسختنا من أجل الحصول على التحديثات من Red Hat. تأكّد من الاتّصال بالشبكة بالذهاب إلى قائمة Applications (التطبيقات) ثم القائمة الفرعيّة System tools (أدوات النّظام) ثم خيار Settings (الإعدادات) ثم زر Network (الشّبكة). نتوجّه بعد التأكّد من الاتّصال إلى قائمة التطبيقات مرة أخرى، أدوات النّظام ونختار منها Red Hat Subscription Manager (مدير الاشتراك في Red Hat). أدخل كلمة السرّ الخاصّة بالحساب الجذر (ليست كلمة سر حسابك العادي) إن طُلب منك ذلك. تظهر النافذة التالية. ننقر على زر Register (سجِّل) وندخل معلومات الاستيثاق الخاصّة بحساب مطوّري Red Hat (اسم المستخدِم وكلمة السّر) ثم ننتظر قليلا لتظهر النافذة التاليّة. تلخّص النافذة معلومات الاشتراك ونوعه. نضغط على زرّ Attache (أرفق) لاستخدام الاشتراك وتلقي التحديثات. لدينا الآن اشتراك مدّته سنة. إعدادات تكميلية أنهينا الآن تثبيت RHEL على VirtualBox؛ نكمل بتطبيق إعدادات تكميلية تساعدنا أثناء العمل على RHEL من داخل VirtualBox. تعطيل شاشة القفل وخيارات حفظ الطاقة تشغّل الإعدادات المبدئيّة في RHEL قفل الشّاشة عندما لا تكون مستخدمة؛ هذا مناسب أثناء العمل على جهاز فعليّ إلا أنه من الأفضل تعطيله على نظام وهميّ حيث يتولّى النّظام المضيف هذه المهمة. لتعطيل هذه الإعدادات ننقر على قائمة التطبيقات ثم نختار أدوات النظام ونحدّد الإعدادات Settings. نختار ضمن نافذة الإعدادات خيار الخصوصية Privacy، ثم قفل الشاشة Screen lock ثم نعطّل القفل التلقائي للشاشة Automatic Screen Lock. نعود لنافذة الإعدادات ونختار زرّ الطاقة Power لتظهر نافذة إعدادات الطاقة. ننقر على القائمة المنسدلة بجانب خيّار Black screen (الشاشة السوداء) ثم نختار Never من القائمة. إضافات Virtualbox تمكّن VirtualBox Guest Additions (إضافات الضّيف في VirtualBox) من تحسين التّكامل بين النظام الضّيف والنّظام المضيف. مثلا: استخدام المؤشّر دون الحاجة للضغط على زر Ctrl في لوحة المفاتيح. النسخ واللّصق بين النظامين. تشارك الملفات. القدرة على تغيير حجم الواجهة الرسوميّة داخل النظام الوهمي بتغيير حجم نافذة النّظام داخل VirtualBox. تحتاج قبل تثبيت إضافات VirtualBox إلى تثبيت أدوات التّطوير (نفّذنا هذه الخطوة أثناء تثبيت النظام) وإلى الدّخول إلى واجهة سطح المكتب. تكون خطوات التثبيت على النحو التالي. شغّل النظام الوهميّ RHEL ثم اختر قائمة Devices (أجهزة طرفيّة) في نافذة VirtualBox؛ ثم اختر Insert Guest Additions CD image. ستظهر بعد لحظات نافذة حوار تسألك ما إذا كنت متأكدا من أنك تريد تنزيل الملف. يبدأ تنزيل الملفّ بالضغط على Download (نزِّل) ثم تظهر بعد اكتمال التنزيل نافذة تطلُب تسجيل الملف وإدخاله في القرص الضّوئي الوهمي للنظام. انقر على زر Insert. تظهر بعد إدخال الملفّ النافذة التاليّة التي تطلُب تشغيله. يبدأ - بالنقر على زر Run في النافذة - تثبيتُ الإضافات. سيُطلَب منك إدخال كلمة السّر الخاصّة بحساب الجذر Root. تطلُب نافذة التثبيت الضغط على زر Enter بعد اكتمال العملية. أعد تشغيل النظام؛ ستظهر رسالة على الشاشة تخبرك أن النظام الوهمي يتعرّف الآن تلقائيا على المؤش عند مروره في النافذة الخصّة به في VirtualBox دون الحاجة للضّغط على زر Ctrl. يمكن استخدام المؤشّر على النّظام المضيف بمجرّد خروجه من حيّز الشاشة المخصَّص للنظام الضّيف. انقر على الأيقونة اليمنى في الرسالة لكي لا تظهر مجدّدا. تحديث النظام الخطوة الأخيرة هي تحديث النّظام. افتح طرفيّة Terminal (قائمة التطبيقات ثم المفضّلة Favorites) ثم نفّذ الأمر التالي للدخول في الحساب الجذر: su - ستُطلب منك كلمة سر المستخدم الجذر. ثم نفّذ الأمر التالي لتحديث الحزم والبرامج المثبّتة: yum -y update
-
كانت أوبنتو أكثر نظام تشغيل مستخدم في العالم في أغلبية المنصات السحابية، فأصبح من الضروري توفير صور سحابية مستقرة وآمنة؛ وفي إصدارة 12.04، تحسن استعمال الصور السحابية خارج البنية التحتية للسحابة؛ وأصبح الآن بالإمكان استخدام هذه الصور لإنشاء آلات وهمية دون الحاجة إلى إجراء تثبيت كامل. إنشاء آلات وهمية باستخدام الأداة uvtool بدءًا من 14.04، أصبح هنالك أداة هي uvtool لتسهيل مهمة توليد الآلات الوهمية (VM) باستخدام الصور السحابية؛ توفر الأداة uvtool آليةً للمزامنة بين الصور السحابية محليًا واستخدامها لإنشاء آلات وهمية في غضون دقائق. حزم Uvtool الحزم الآتية واعتمادياتها مطلوبةٌ لاستخدام uvtool: uvtool uvtool-libvirt تثبيت uvtool مثله كمثل غيره من التطبيقات باستخدام apt-get: sudo apt-get install uvtool هذا سيتثبت الأوامر الرئيسية للأداة uvtool: uvt-simplestreams-libvirt uvt-kvm الحصول على صورة سحابة أوبنتو مع uvt-simplestreams-libvirt هذه إحدى التبسيطات التي جاءت بها الأداة uvtool؛ حيث أنها تعلم أين يمكن العثور على الصور السحابية، لذلك ستحتاج إلى أمرٍ واحد للحصول على صورة سحابية؛ على سبيل المثال، إذا أردت مزامنة كل الصور السحابية لمعمارية amd64، فسيكون الأمر كالآتي: uvt-simplestreams-libvirt sync arch=amd64 بعد الفترة الضرورية من الزمن لتنزيل كل الصور من الإنترنت، سيكون لديك مجموعة كاملة من الصور السحابية مخزنةٌ محليًا؛ نفِّذ الأمر الآتي لرؤية الصور التي نُزِّلَت: uvt-simplestreams-libvirt query release=oneiric arch=amd64 label=release (20130509) release=precise arch=amd64 label=release (20140227) release=quantal arch=amd64 label=release (20140302) release=saucy arch=amd64 label=release (20140226) release=trusty arch=amd64 label=beta1 (20140226.1) وفي حال أردت مزامنة صورة سحابية واحد محددة، فيمكنك استخدام المُرشِّحات release= و arch= لتعريف الصورة التي يجب مزامنتها: uvt-simplestreams-libvirt sync release=precise arch=amd64 إنشاء آلة وهمية باستخدام uvt-kvm لكي تكون قادرًا على الاتصال بالآلة الوهمية بعد أن تُنشِئها، فمن الضروري أن يكون لديك مفتاح SSH صالح متوفر لمستخدم أوبنتو؛ إذا لم يكن لبيئتك مفتاح، فيمكنك إنشاء واحد بسهولة باستخدام الأمر الآتي: $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ubuntu/.ssh/id_rsa. Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub. The key fingerprint is: 4d:ba:5d:57:c9:49:ef:b5:ab:71:14:56:6e:2b:ad:9b ubuntu@TrustyS The key's randomart image is: +--[ RSA 2048]----+ | ..| | o.=| | . **| | + o+=| | S . ...=.| | o . .+ .| | . . o o | | * | | E | +-----------------+ إنشاء آلة وهمية باستخدام uvtool هو أمر هيّن، ففي أبسط شكل، كل ما عليك فعله هو تنفيذ الأمر: uvt-kvm create firsttest وهذا ما سينُشِئ آلةً وهميةً باسم firsttest باستخدام الصورة السحابية لنسخة الدعم الطويل الحالية (LTS) المتوفرة محليًا، إذا أردت تحديد إصدارة لتُستخدم لإنشاء الآلة الوهمية؛ فستحتاج إلى استخدام مرشح release=: uvt-kvm create secondtest release=trusty يمكن استخدام الأمر uvt-kvm wait NAME للانتظار حتى اكتمال إنشاء الآلة الوهمية: uvt-kvm wait secondttest --insecure Warning: secure wait for boot-finished not yet implemented; use --insecure. الاتصال إلى آلة وهمية تعمل بعد إكمال إنشاء الآلة الوهمية، يمكنك الاتصال إليها عبر SSH: uvt-kvm ssh secondtest --insecure وبالمناسبة، الخيار --insecure مطلوب، لذلك عليك استخدام هذه الطريقة للاتصال إلى الآلات الوهمية إذا كنت تثق بأمان البنية التحتية لشبكتك تمام الثقة. يمكنك أيضًا الاتصال إلى الآلة الوهمية باستخدام جلسة ssh اعتيادية باستعمال عنوان IP للآلة الوهمية؛ يمكن أن يُطلَب عنوان IP عبر الأمر الآتي: $ uvt-kvm ip secondtest 192.168.123.242 $ ssh -i ~/.ssh/id_rsa ubuntu@192.168.123.242 The authenticity of host '192.168.123.242 (192.168.123.242)' can't be established. ECDSA key fingerprint is 3a:12:08:37:79:24:2f:58:aa:62:d3:9d:c0:99:66:8a. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.123.242' (ECDSA) to the list of known hosts. Welcome to Ubuntu Trusty Tahr (development branch) (GNU/Linux 3.13.0-12-generic x86_64) * Documentation: https://help.ubuntu.com/ System information disabled due to load higher than 1.0 Get cloud support with Ubuntu Advantage Cloud Guest: http://www.ubuntu.com/business/services/cloud 0 packages can be updated. 0 updates are security updates. Last login: Fri Mar 21 13:25:56 2014 from 192.168.123.1 الحصول على قائمة بالآلات الوهمية التي تعمل يمكن الحصول على قائمة بالآلات الوهمية التي تعمل على نظامك باستخدام الأمر: uvt-kvm list secondtest تدمير الآلة الوهمية بعد أن تنتهي من الآلة الوهمية، يمكنك «تدميرها» والتخلص منها بالأمر: uvt-kvm destroy secondtest المزيد من خيارات uvt-kvm يمكن أن تُستخدَم الخيارات الآتية لتغيير بعض خصائص الذاكرة الوهمية التي تُنشِئها: الخيار --memory: مقدار الذاكرة (RAM) بواحدة الميغابايت، القيمة الافتراضية هي 512. الخيار --disk: مقدار قرص النظام بواحدة الغيغابايت، القيمة الافتراضية هي 8. الخيار --cup: عدد أنوية المعالج، القيمة الافتراضية هي 1. بعض المعاملات الأخرى لها تأثير على ضبط cloud-init: الخيار --password password: السماح بتسجيل الدخول إلى الآلة الوهمية باستخدام حساب ubuntu وكلمة المرور المزودة مع هذا الخيار. الخيار --run-script-once script_file: تشغيل السكربت script_file بامتيازات الجذر في أول مرة تُقلِع فيها الآلة الوهمية، لكنه لن يُشغَّل بعد ذلك قط. الخيار --packages package_list: تثبيت الحزم المذكورة في package_list والمفصول بينها بفواصل في أول مرة تُقلِع فيها الآلة الوهمية. يتوفر شرح كامل عن كل الخيارات المتوفرة في صفحة دليل man uvt-kvm. مصادر إذا كنت مهتمًا بتعلم المزيد أو كانت لديك أسئلة أو اقتراحات، فيمكنك مناقشة فريق خادوم أوبنتو على: قناة IRC باسم #ubuntu-server على خادوم Freenode. القائمة البريدية: ubuntu-server at lists.ubuntu.com. ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Cloud images and uvtool.
-
- ubuntu server
- أوبنتو
- (و 8 أكثر)