كان فريق DevOps في edX مشغولًا بالعمل مع المجتمع لإتاحة Open edX للجميع في العالم. تقريبا كل الكود وراء edx.org is متاح للجمهور بموجب ترخيص GPL. بالإضافة إلى الكود المصدري لـ edx-platform ، تتوفر نصوص التكوين التي تقوم بتثبيت النظام الأساسي وتحديثه في الريبو التكوين. الأداة التي نستخدمها للتكوين تسمى Ansible، أداة إدارة التكوين المستندة إلى Python والتي تتمتع بالتوازن الصحيح بين المرونة والبساطة لفريق العمليات لدينا.
دوريا تصدر edX صور Vagrant إذا كنت ترغب في تثبيت edX على جهاز الكمبيوتر الخاص بك. نرى وثائقنا لإعداد النظام الأساسي محليًا في جهاز افتراضي.
بينما نركز عادةً على نشر edX على خوادم الإنتاج الكبيرة المستندة إلى مجموعة النظراء ، فإن هذا المنشور يغطي تحديًا مختلفًا تمامًا: إثبات مفهوم تشغيل دورة edX وبرامج التأليف على Raspberry Pi.
أكثر من فطيرة التوت هو كمبيوتر منخفض التكلفة ARM / Linux يمكن شراؤه بحوالي 35 دولارًا. إن تشغيل موقع ويب edX على جهاز منخفض التكلفة مثل Pi يمكن أن يمكّن من تمكين الفصول الدراسية المحمولة في المناطق ذات الوصول المحدود إلى الإنترنت. يمكن القيام بذلك باستخدام Pi مقابل نقود أقل من الكمبيوتر المحمول أو كمبيوتر سطح المكتب.
يعمل الحد الأدنى من تكوين الموقع على Raspberry Pi ولكنه لا يعمل بشكل جيد بما يكفي لاستخدامه في الدورات التدريبية الحقيقية التي تخدم العديد من الطلاب. ومع ذلك ، فإن النظام الأساسي وظيفي لطالب واحد ، مع وجود مجال للتحسين المحتمل.
- الخطوة الاولى:: قم بتنزيل صورة Raspberry Pi المعدة مسبقًا: edx-raspberrypi-20131228.img.gz
- الخطوة الاولى:: فلاش بطاقة SD
يمكنك استخدام اسم المستخدم وكلمة المرور الافتراضيين لـ ssh - المستخدم: pi كلمة السر:التوت - الخطوة الاولى:: تأكد من أن المشرف يعمل وأن كلاً من LMS و CMS قيد التشغيل:
sudo service supervisor start
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf - الخطوة الاولى:: باستخدام المستعرض الخاص بك ، قم بالاتصال بـ LMS و Studio:
LMS on port 18000 - `http://[ip address]:18000 `
Studio on port 18010 - `http://[ip address]:18010`
username: staff@example.com password: edx
ما الذي يعمل وما لا ينجح
- أنشئ دورة جديدة باستخدام الاستوديو
- الوصول إلى الدورات كطالب
قياس وقت عرض الصفحة باستخدام أدوات تطوير Chrome:
- صفحة المناهج التعليمية التوضيحية لـ LMS ~ 5 ثوان
- صفحة لوحة معلومات الطالب ~ 5 ثوان
الميزات التالية غير مدعومة حتى الآن:
- منتديات لم يتم تمكينها وربما لا تكون متوافقة مع الإصدار الحالي من Mongo.
- لم يتم تمكين مصنعي الكود المخصص.
- ORA / تميز - تدرك لتعلم الآلة.
تكوين edX على Raspberry Pi
أجهزة Raspberry Pi
- 700 ميجاهرتز Raspberry Pi / 500 ميجابايت
- 8 جيجابايت بطاقة sd
تكوين خدمة
سيتم تشغيل الخدمات التالية على Raspberry Pi بعد التثبيت:
- Nginx / جونيكورن
- Python / Django وجميع مكتبات Python التي تعتمد عليها
- MySQL
- مونغو
- أعطها
كل ما تتطلبه edX موجود تحت / edx ومكتفٍ ذاتيًا تمامًا في بيئات Python الافتراضية المتعددة. تم تثبيت Mongo في / edx / mongo ، وهو ملف منفذ غير x86 جمعت ل ARM. نظرًا لأن تجميع كل شيء لـ Raspberry Pi من البداية يستغرق أيامًا ، فهناك صورة عامة متاحة ستكون بمثابة نقطة انطلاق جيدة.
هناك حاجة إلى بعض التحذيرات والتحسينات قبل أن يمكن استخدامها بجدية:
- يجب التخلص من التسجيل الدخيل: تم تعيين loglevel على CRITICAL لكن سجلات التتبع مكتوبة حاليًا على بطاقة SD.
- الأداء العام ليس مثاليًا وسيكون من الصعب تحسينه بدون إعداد تخزين مؤقت أكثر قوة أو إجراء تغييرات إضافية في التعليمات البرمجية.
- يستغرق تحديث نظام الريبو edx-platform حوالي ساعة واحدة.
التكوين مع أنسبل
نستخدم Ansible كأداة إدارة تكوين EDX لأنظمة الإنتاج. ستعمل نفس البرامج النصية مع بعض التعديلات الصغيرة مع Raspberry Pi.
تم إعداد Ansible على Raspberry Pi ، مما يسهل تحديثه للحصول على إصدارات جديدة من منصة edx وإجراء تغييرات على التكوين. تستغرق التحديثات حوالي ساعة بسبب تجميع الأصول (Coffeescript and Sass) ، على الرغم من أن هذه الخطوة يمكن إجراؤها في وضع عدم الاتصال نظرًا لأنها ليست خاصة بالهندسة المعمارية.
كيفية تحديث Raspberry Pi لأحدث التزام منصة edx
يمكن تشغيل الأوامر التالية مباشرة على Raspberry Pi لتحديث التكوين أو إصدار repo الخاص بالنظام الأساسي edx:
# Ensure that the configuration repo is on the Raspberry Pi branchsudo / edx / bin / تحديث التكوين jarv / raspberrypi
# قم بتشغيل كتاب لعب Raspberry Pi Ansible
cd / edx / app / edx_ansible / edx_ansible / playbooks / edx-east
/ edx / app / edx_ansible / venvs / edx_ansible / bin / ansible-playbook -i localhost ، -c local - العلامات تنشر raspberrypi.yml -e "edx_platform_version = master"المساعدة واستكشاف الأخطاء وإصلاحها
إذا كنت بحاجة إلى مساعدة في edX ، فيرجى الانضمام إلينا القائمة البريدية للمجتمع. إذا كانت لديك أسئلة محددة حول تشغيل edX على Raspberry Pi ، فالرجاء أن تضع في اعتبارك أن هذا مجرد نموذج أولي ولا يتم صيانته ودعمه رسميًا. إذا كنت تعمل على Raspberry Pi أو نظام أساسي آخر ، واسمحوا لي أن أعرف - أحب أن أسمع منك!


