Команда DevOps в edX була зайнята роботою зі спільнотою, щоб зробити Open edX доступним для всіх у світі. Майже весь код позаду edx.org is доступні для громадськості під ліцензією GPL. На додаток до вихідного коду платформи edx, сценарії конфігурації, які встановлюють і оновлюють платформу, доступні в нашому репо конфігурації. Інструмент, який ми використовуємо для налаштування, називається Неможливо, інструмент керування конфігурацією на основі Python, який має правильний баланс між гнучкістю та простотою для нашої операційної групи.
Періодично edX випускає образи Vagrant якщо ви бажаєте встановити edX на свій ПК. Побачити нашу документацію для локального налаштування платформи у віртуальній машині.
Хоча зазвичай ми зосереджуємося на розгортанні edX на великих хмарних виробничих серверах, ця публікація охоплює зовсім інше завдання: підтвердження концепції для запуску курсу edX і авторського програмного забезпечення на Raspberry Pi.
Команда Raspberry Pi це недорогий комп’ютер ARM/Linux, який можна придбати приблизно за 35 доларів США. Запуск веб-сайту edX на недорогому пристрої, такому як Pi, може потенційно увімкнути портативні класи в регіонах з обмеженим доступом до Інтернету. Це можна зробити за допомогою Pi за менші гроші, ніж за ноутбук або настільний комп’ютер.
Мінімальна конфігурація сайту функціонує на Raspberry Pi, але вона ще не працює достатньо добре, щоб використовувати її в реальних курсах для кількох студентів. Платформа, однак, функціональна для одного студента, з можливістю вдосконалення.
Завантаження та встановлення
- крок 1: Завантажте попередньо створене зображення Raspberry Pi: edx-raspberrypi-20131228.img.gz
- крок 2: Прошити SD-карту
Ви можете використовувати ім’я користувача та пароль за замовчуванням для ssh – користувач: pi пароль:малина - крок 3: Переконайтеся, що супервізор запущено, а LMS і CMS запущені:
sudo service supervisor start
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf - крок 4: За допомогою браузера підключіться до LMS і Studio:
LMS on port 18000 - `http://[ip address]:18000 `
Studio on port 18010 - `http://[ip address]:18010`
username: staff@example.com password: edx
Що працює, а що ні
- Створіть новий курс за допомогою Studio
- Доступ до курсів як студент
Вимірювання часу візуалізації сторінки за допомогою інструментів розробника Chrome:
- Сторінка демонстраційного курсу LMS ~ 5 секунди
- Сторінка інформаційної панелі студента ~ 5 секунди
Наступні функції ще не підтримуються:
- Форуми не ввімкнено та, ймовірно, несумісні з поточною версією Mongo.
- Користувацькі оцінювачі коду не ввімкнено.
- ORA / Розпізнавати для машинного навчання не ввімкнено.
Конфігурація edX на Raspberry Pi
Апаратне забезпечення Raspberry Pi
- 700 МГц Raspberry Pi / 500 МБ
- 8 Гб SD-карта
Конфігурація служби
Наступні служби працюватимуть на Raspberry Pi після встановлення:
- Nginx/Gunicorn
- Python/Django та всі бібліотеки Python, які від нього залежать
- MySQL
- Монго
- Спогад
Усе, що вимагає edX, знаходиться в /edx і повністю автономно в кількох віртуальних середовищах Python. Mongo встановлено в /edx/mongo, який є порт не x86 скомпільовано для ARM. Оскільки компіляція всього для Raspberry Pi з нуля займає кілька днів, доступний загальнодоступний образ, який стане хорошою відправною точкою.
Перш ніж його можна буде використовувати серйозно, потрібні деякі застереження та вдосконалення:
- Необхідно усунути стороннє журналювання: рівень журналу встановлено на КРИТИЧНИЙ, але журнали відстеження зараз записуються на SD-карту.
- Загальна продуктивність не є ідеальною, і її буде важко покращити без налаштування більш агресивного кешування або внесення додаткових змін у код.
- Оновлення репозиторію edx-платформи займає близько години.
Конфігурація за допомогою Ansible
Ми використовуємо Неможливо як інструмент керування конфігурацією edX для виробничих систем. Ті самі сценарії з деякими невеликими змінами працюватимуть для Raspberry Pi.
Ansible налаштовано на Raspberry Pi, що дозволяє легко оновлювати його для нових версій edx-платформи та вносити зміни в конфігурацію. Оновлення займає близько години через компіляцію активів (Coffeescript і Sass), хоча цей крок можна виконати в автономному режимі, оскільки він не залежить від архітектури.
Як оновити Raspberry Pi до останньої версії edx-платформи
Наступні команди можна запускати безпосередньо на Raspberry Pi, щоб оновити його конфігурацію або версію репозиторію платформи 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 --tags deploy raspberrypi.yml -e "edx_platform_version=master"Довідка та усунення несправностей
Якщо вам потрібна допомога з edX, приєднуйтесь до нас список розсилки спільноти. Якщо у вас є конкретні запитання щодо запуску edX на Raspberry Pi, майте на увазі, що це лише прототип, який офіційно не обслуговується та не підтримується. Якщо ви змусите його працювати на Raspberry Pi або іншій платформі, будь ласка, дай мені знати — Я хотів би почути від вас!


