Professional Documents
Culture Documents
de la plataforma edX
Juanan Pereira
ndice
Historial de Versiones
Fecha
Autor
26/12/13
Juanan Pereira
Cambios
Primera versin
Descripcin
La plataforma edX cuenta con varios componentes. En este proyecto instalaremos y probaremos
los siguientes:
LMS : Learning Management System
CMS: Content Management System (tambin conocido como edX Studio)
Forum: foros de discusin
Se instalarn 2 versiones de edX: una para desarrollo (pruebas) y otra para produccin
(explotacin). Inicialmente ambas versiones estn en ingls, por lo que se ofrecern los pasos
necesarios para la instalacin del soporte de castellano1.
La versin de desarrollo se instala sobre una mquina virtual Ubuntu. Las pruebas realizadas se
han hecho sobre un PC con 4 GB de RAM y una CPU Intel Core 2 Duo CPU a 2.40GHz (aunque para
desarrollo podra valer una mquina con menos recursos, es recomendable que tenga esa
capacidad en memoria debido al alto consumo de RAM de la mquina virtual). Se recomienda
disponer al menos de 20GB de espacio en disco (slo la mquina virtual, sin configurar, requiere de
2GB).
La versin de explotacin requiere de una mquina online, con sistema operativo Ubuntu, similar a
una m1.large en la nube Amazon2 (arquitectura 64 bits, doble procesador Intel Xeon, 7.5 GB RAM,
con unos 50 GB de espacio en disco). Puede instalarse directamente sobre el sistema de archivos
de la mquina fsica o bien crear internamente una mquina virtual e instalar la versin de
produccin sobre dicha mquina virtual.
Una vez instaladas las versiones de desarrollo y prueba, se mostrar, a grandes rasgos, cmo crear
un curso online haciendo uso del mdulo edX Studio.
1 Hay que tener en cuenta que la traduccin al castellano, si bien est bastante avanzada, an no est finalizada por la
comunidad de edX.
2 http://aws.amazon.com/ec2/instance-types/
Crear un directorio para la instalacin de edX, descargar el fichero Vagrantfile y crear la instancia
(mquina virtual):
mkdir devstack
cd devstack
curl https://raw.github.com/edx/configuration/master/vagrant/release/devstack/Vagrantfile > Vagrantfile
vagrant up
La primera vez que lancemos el comando vagrant up, se instalar una mquina virtual y se
aprovisionar (se instalarn las dependencias que requiere edX). Este proceso inicial puede tardar
entre 1 y 2 horas. Dado que se descargan numerosos paquetes de GitHub y que sta web suele
tener problemas puntuales de sobrecarga, es posible que haya que reintentar el proceso varias
veces hasta conseguir finalizar la instalacin (Figura 1).
Se recomienda que la mquina host use un sistema operativo Linux (a ser posible Ubuntu, aunque podra
funcionar tambin en Debian)
Al lanzar la mquina virtual con el comando vagrant up, es probable que se pida el password del
usuario local (usuario de la mquina fsica) para poder configurar las carpetas compartidas por NFS
entre host y guest.
Al arrancar Vagrant, ste puede aadir una nueva entrada al fichero hosts de la mquina fsica para
poder acceder a la vista previa de los cursos de forma muy sencilla:
192.168.33.10 preview.localhost
Para que esta entrada en hosts funcione, es necesario instalar el plugin hostsupdater:
$ vagrant plugin install vagrant-hostsupdater
Para acceder a la mquina virtual (plataforma edX):
$ vagrant ssh
sudo su edxapp
./manage.py cms runserver --settings=devstack 0.0.0.0:8001
Lanzamos el foro:
sudo su forum
ruby app.rb
Podremos comprobar que el LMS est online abriendo la direccin http://localhost:8000 en el
navegador (Figura 2).
$ cp /edx/app/edxapp/edx-platform/conf/locale/en_US/LC_MESSAGES/* /edx/app/edxapp/edxplatform/conf/locale/en/LC_MESSAGES/
$ rake i18n:generate -t
Tras ejecutar los comandos anteriores, es necesario reiniciar los servicios LMS y CMS. Ahora, la
pgina principal de dichos servicios debe verse con los mensajes en castellano (Figura 4).
https://github.com/edx/edx-demo-course
FAQ
Cmo convierto mi cuenta en una cuenta de administrador?
Cuando creas una nueva cuenta en tu entorno de desarrollo, esta obtendr permisos de usuario
estndar. Puedes cambiar estos permisos para que el usuario adquiera el rol de
administrador global, lo que significa que podr ver automticamente la pestaa "Instructor"
en todos los cursos de edX.
mysql -u root
mysql> use edxapp;
mylsql> update auth_user set is_staff=1 where email = usuario@email.com
Tambin se puede cambiar el rol de un usuario a super_usuario:
mylsql> update auth_user set is_superuser=1 where email = usuario@email.com
Un super-usuarios podr acceder al panel de administracin de edX en localhost:8000/admin .
Cmo configuro el CMS para que slo aquellos usuarios del rol is_staff puedan crear
cursos?
en /edx/app/edxapp/edx-platform/cms/envs/common.py
aade la siguiente lnea:
'DISABLE_COURSE_CREATION': True,
(dentro de la seccin FEATURES = { } )
y reinicia el CMS.
Ubuntu 12.04
Minimo 2GB de memori RAM (4 GB recomendado para servidores de produccin)
Mnimo, CPU a 2.00 GHz (un una unidad de computacin EC2)
Mnimo, 25GB libres de disco duro. 50GB recomendados para servidors de produccin
Por favor, lee el contenido del script antes de ejecutarlo para asegurarte de que entiendes todo lo
que hace. El script reqire que el usuario que lo ejecute tenga permisos de root (va sudo).
wget
10
https://raw.github.com/edx/configuration/577971d472ffc50f83820d139194dc3b6353f778/util/ins
tall/vagrant.sh -O - | bash
Instalacin manual
cd /var/tmp
git clone https://github.com/edx/configuration
cd /var/tmp/configuration
sudo pip install -r requirements.txt
cd /var/tmp/configuration/playbooks
sudo ansible-playbook -c local ./edx_sandbox.yml -i "localhost,"
Nota: si recibes el siguiente error: npm Error: failed to fetch from registry: coffee-script,
aade la siguiente lnea al fichero /usr/share/npm/npmrc y vuelve a intentar la instalacin:
registry = "http://registry.npmjs.org/"
Si ansible se para en algn punto de la instalacin, analiza los ficheros log en busca de la
razn. La localizacin de los ficheros LOG se describe en una seccin posterior de este
mismo documento.
LMS - 80
11
Studio - 18010
Uso de manage.py
Conctate al servidor y sitate en el directorio /edx/app/edxapp/edx-platform directory para usar
manage.py
./manage.py
lms
--settings
aws
create_user
-e
12
discern
discern_celery
edxapp:cms
edxapp:lms
edxapp_worker:cms_default_4
edxapp_worker:cms_high_1
edxapp_worker:cms_low_3
edxapp_worker:lms_default_3
edxapp_worker:lms_high_4
edxapp_worker:lms_high_mem_2
edxapp_worker:lms_low_1
forum
ora
ora_celery
xqueue
xqueue_consumer
xserver
Reiniciar servicios
Ejemplos:
sudo /edx/bin/update edx-platform master - actualiza edx-platform a la versin ms moderna del
repo (en la rama master)
sudo /edx/bin/update cs_comments_service master - actualiza el servicio de foros a la versin ms
moderna del repo (en la rama master)
Los nombres de los servicios actualizables son:
[cs_comments_service,ease,discern,xqueue,xserver,edx-platform,configuration,edx-ora]
Resolucin de problemas
No es posible conectar con el LMS
Comprueba que nginx se est ejecutando:
sudo service nginx status
sudo service nginx start
Los logs de nginx se sitan en /edx/var/log/nginx . Los ficheros de configuracin de nginx se sitan
en /edx/app/nginx/sites-enabled .
Comprueba que el LMS/CMS est en ejecucin:
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf status edxapp
Ficheros Log
14
El servidor de produccin enva los logs de las aplicaciones a rsyslog y ste los guarda en
/edx/var/log .
Los logs de Supervisor (stderr y stdout), se localizan en /edx/var/log/supervisor .
Theming (Personalizacin)
Es posible modificar y ajustar el aspecto grfico del LMS de edX a la imagen grfica de la entidad
educativa que ofrece los cursos. Para ello, podremos usar como ejemplo base el tema (theme)
preparado para edX por la universidad de Stanford.
cd /edx/app/edxapp
mkdir themes
cd themes
git clone https://github.com/Stanford-Online/edx-theme.git Stanford
Indicar al fichero de configuracin del sitio web que usaremos una personlizacin grfica
Editar lms/envs/devstack.py
aadir la siguiente lnea
FEATURES['USE_CUSTOM_THEME'] = True
cp /edx/app/edxapp/themes/stanford/static/saas/_stanford.scss lms/static/saas
16