Il team DevOps di edX è stato impegnato a lavorare con la community per rendere Open edX disponibile a tutti nel mondo. Quasi tutto il codice dietro edx.org is messo a disposizione del pubblico con licenza GPL. Oltre al codice sorgente della piattaforma edx, nella ns repository di configurazione. Viene chiamato lo strumento che utilizziamo per la configurazione ansible, uno strumento di gestione della configurazione basato su Python che offre il giusto equilibrio tra flessibilità e semplicità per il nostro team operativo.
Periodicamente edX rilascia le immagini di Vagrant se desideri installare edX sul tuo PC. Vedere la nostra documentazione per configurare la piattaforma in locale in una macchina virtuale.
Mentre di solito ci concentriamo sulla distribuzione di edX su grandi server di produzione basati su cloud, questo post copre una sfida molto diversa: una prova di concetto per l'esecuzione del corso edX e la creazione di software su Raspberry Pi.
. Raspberry Pi è un computer a basso costo ARM/Linux che può essere acquistato per circa $ 35. L'esecuzione del sito Web edX su un dispositivo a basso costo come il Pi potrebbe potenzialmente abilitare aule portatili in aree con accesso limitato a Internet. Questo può essere fatto con il Pi per meno soldi rispetto a un laptop o un computer desktop.
Una configurazione minima del sito è funzionale su Raspberry Pi ma non funziona ancora abbastanza bene per essere utilizzata in corsi reali che servono più studenti. La piattaforma, invece, è funzionale per un singolo studente, con margini di potenziale miglioramento.
Scarica e installa
- Fase 1: Scarica l'immagine Raspberry Pi predefinita: edx-raspberrypi-20131228.img.gz
- Fase 2: Flash la scheda SD
È possibile utilizzare il nome utente e la password predefiniti per ssh – user: pi password:lampone - Fase 3: assicurarsi che il supervisore sia in esecuzione e che sia l'LMS che il CMS siano in esecuzione:
sudo service supervisor start
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf - Fase 4: Con il tuo browser, connettiti a LMS e Studio:
LMS on port 18000 - `http://[ip address]:18000 `
Studio on port 18010 - `http://[ip address]:18010`
username: staff@example.com password: edx
Cosa funziona e cosa no
- Crea un nuovo corso utilizzando Studio
- Accedi ai corsi come studente
Misurare il tempo di rendering delle pagine utilizzando gli strumenti di sviluppo di Chrome:
- Pagina del materiale didattico dimostrativo LMS ~ 5 secondi
- Pagina del dashboard degli studenti ~ 5 secondi
Le seguenti funzionalità non sono ancora supportate:
- Forum non sono abilitati e probabilmente non sono compatibili con la versione corrente di Mongo.
- I selezionatori con codice personalizzato non sono abilitati.
- ORA / Discernere per l'apprendimento automatico non sono abilitati.
edX Configurazione su Raspberry Pi
Hardware Raspberry Pi
- Raspberry Pi a 700 MHz / 500 MB
- Scheda SD da 8 GB
Servizio di configurazione
I seguenti servizi verranno eseguiti su Raspberry Pi dopo l'installazione:
- Nginx/Gunicorno
- Python/Django e tutte le librerie Python che dipendono da esso
- MySQL
- Mongo
- memcached
Tutto ciò che richiede edX si trova in /edx e completamente autonomo in più ambienti virtuali Python. Mongo è installato in /edx/mongo, che è il file porta non x86 compilato per ARM. Poiché la compilazione di tutto per il Raspberry Pi da zero richiede giorni, è disponibile un'immagine pubblica che fungerà da buon punto di partenza.
Sono necessari alcuni avvertimenti e miglioramenti prima che possa essere utilizzato seriamente:
- È necessario eliminare la registrazione estranea: loglevel è impostato su CRITICAL ma i registri di tracciamento sono attualmente scritti sulla scheda SD.
- Le prestazioni complessive non sono ideali e sarà difficile migliorare senza impostare una memorizzazione nella cache più aggressiva o apportare modifiche aggiuntive al codice.
- L'aggiornamento del repository della piattaforma edx richiede circa un'ora.
Configurazione con Ansible
Usiamo ansible come strumento di gestione della configurazione edX per i sistemi di produzione. Gli stessi script con alcune piccole modifiche funzioneranno per Raspberry Pi.
Ansible è configurato su Raspberry Pi, semplificando l'aggiornamento per le nuove versioni di edx-platform e apportando modifiche alla configurazione. Gli aggiornamenti richiedono circa un'ora a causa della compilazione delle risorse (Coffeescript e Sass), anche se questo passaggio potrebbe essere eseguito offline poiché non è specifico dell'architettura.
Come aggiornare il Raspberry Pi all'ultimo commit della piattaforma edx
I seguenti comandi possono essere eseguiti direttamente sul Raspberry Pi per aggiornare la sua configurazione o la versione del repository della piattaforma edx:
# Ensure that the configuration repo is on the Raspberry Pi branchsudo /edx/bin/update configurazione jarv/raspberrypi
# Esegui il playbook Raspberry Pi Ansible
cd /edx/app/edx_ansible/edx_ansible/playbooks/edx-est
/edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook -i localhost, -c local --tags deploy raspberrypi.yml -e "edx_platform_version=master"Guida e risoluzione dei problemi
Se hai bisogno di aiuto con edX, unisciti al nostro mailing list della comunità. Se hai domande specifiche sull'esecuzione di edX su Raspberry Pi, tieni presente che questo è solo un prototipo e non è mantenuto e supportato ufficialmente. Se lo fai funzionare su Raspberry Pi o un'altra piattaforma, per favore fatemelo sapere - Mi farebbe piacere avere tue notizie!


