edX 的 DevOps 团队一直忙于与社区合作,让世界上的每个人都可以使用 Open edX。 几乎所有的代码都在后面 edx.org is 向公众提供 在 GPL 许可下。 除了 edx-platform 源代码,安装和更新平台的配置脚本在我们的 配置仓库. 我们用来配置的工具叫做 Ansible,一个基于 Python 的配置管理工具,为我们的运营团队在灵活性和简单性之间取得了适当的平衡。
定期地 edX 发布 Vagrant 图片 如果您想在您的 PC 上安装 edX。 看 我们的文件 用于在虚拟机中本地设置平台。
虽然我们通常专注于将 edX 部署到基于云的大型生产服务器,但这篇文章涵盖了一个非常不同的挑战:在 Raspberry Pi 上运行 edX 课程和创作软件的概念验证。
这个 Raspberry Pi的 是 ARM/Linux 的低成本计算机,售价约为 35 美元。 在诸如 Pi 之类的低成本设备上运行 edX 网站可能会在互联网访问受限的地区启用便携式教室。 与笔记本电脑或台式电脑相比,这可以用 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
什么有效,什么无效
- 使用 Studio 创建新课程
- 以学生身份访问课程
使用 Chrome 开发工具测量页面呈现时间:
- LMS 演示课件页面 ~ 5 秒
- 学生仪表板页面 ~ 5 秒
尚不支持以下功能:
树莓派上的 edX 配置
Raspberry Pi硬件
- 700MHz 树莓派 / 500MB
- 8 GB SD卡
服务配置
安装后,以下服务将在 Raspberry Pi 上运行:
- Nginx/独角兽
- Python/Django 和所有依赖它的 Python 库
- MySQL
- 蒙戈
- Memcached的
edX 所需的一切都位于 /edx 下,并且在多个 Python 虚拟环境中完全自包含。 Mongo 安装在 /edx/mongo 中,即 非 x86 端口 为 ARM 编译。 由于从头开始为 Raspberry Pi 编译所有内容需要几天时间,因此有一个可用的公共映像可以作为一个很好的起点。
在认真使用之前需要一些注意事项和改进:
- 需要消除无关日志记录:loglevel 设置为 CRITICAL,但跟踪日志当前写入 SD 卡。
- 整体性能并不理想,如果不设置更积极的缓存或进行额外的代码更改,将很难提高。
- 更新 edx-platform 存储库大约需要一小时。
使用 Ansible 进行配置
我们使用 Ansible 作为生产系统的 edX 配置管理工具。 带有一些小修改的相同脚本将适用于 Raspberry Pi。
Ansible 是在 Raspberry Pi 上设置的,因此可以很容易地为新版本的 edx-platform 更新它并进行配置更改。 由于资产编译(Coffeescript 和 Sass),更新大约需要一个小时,尽管该步骤可以离线完成,因为它不是特定于架构的。
如何将 Raspberry Pi 更新到最新的 edx 平台提交
以下命令可以直接在 Raspberry Pi 上运行以更新其配置或 edx-platform repo 版本:
# 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 方面的帮助,请加入我们的 社区邮件列表. 如果您有关于在 Raspberry Pi 上运行 edX 的具体问题,请记住这只是一个原型,并没有得到官方维护和支持。 如果你确实让它在 Raspberry Pi 或其他平台上运行, 请让我知道 ——我很想听听你的意见!


