Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Instalacion PDF
Instalacion PDF
de la plataforma edX
Juanan Pereira
ndice
Objetivo y descripcin del proyecto...............................................................................1
Objetivo.....................................................................................................................1
Descripcin................................................................................................................1
Instalacin y configuracin de la versin de desarrollo.................................................2
Instalacin de la versin de desarrollo (DevStack) de edX........................................2
Configuracin de los servicios de edX (DevStack).....................................................3
Cambiar configuracin SMTP.....................................................................................4
Internacionalizacin (i18n) y localizacin (l10n).......................................................5
Importar curso de demostracin...............................................................................6
FAQ.............................................................................................................................8
Instalacin y configuracin de la versin de produccin...............................................9
Requerimientos Hardware.........................................................................................9
Instalacin de edX en un nico servidor Ubuntu 12.04 (Precise)..................................9
Sustituir los puertos por defecto por subdominios.................................................11
Cmo gestionar el servidor de Produccin..................................................................11
Uso de manage.py...................................................................................................11
Verificar los servicios en ejecucin..........................................................................11
Reiniciar servicios....................................................................................................12
Actualizar las versiones de los servicios edX...........................................................12
Cmo compilar los recursos manualmente.............................................................13
Resolucin de problemas.............................................................................................13
No es posible conectar con el LMS..........................................................................13
Ficheros Log..................................................................................................................13
Theming (Personalizacin)...........................................................................................14
Historial de Versiones
Fecha Autor Cambios
26/12/13 Juanan Pereira Primera versin
Objetivo y descripcin del proyecto
Objetivo
Crear la documentacin necesaria sobre los pasos a dar para instalar y configurar la plataforma
edX, teniendo en cuent que se quiere usar para lanzar un curso MOOC.
Descripcin
La plataforma edX cuenta con varios componentes. En este proyecto instalaremos y probaremos
los siguientes:
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/
1
Instalacin y configuracin de la versin de desarrollo
En el host, es necesario tambin instalar soporte NFS para poder compartir carpetas entre el host y
la mquina virtual (guest):
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).
3 Se recomienda que la mquina host use un sistema operativo Linux (a ser posible Ubuntu, aunque podra
funcionar tambin en Debian)
2
Figura 1: Instalacin de edX (versin de desarrollo) finalizada sin errores.
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 ssh
Lanzamos LMS:
sudo su edxapp
./manage.py lms runserver --settings=devstack 0.0.0.0:8000
3
sudo su edxapp
./manage.py cms runserver --settings=devstack 0.0.0.0:8001
Lanzamos el foro:
sudo su forum
ruby app.rb
4
Figura 3: Pgina inicial del CMS de edX.
"CONTACT_EMAIL": "info@asmoz.org,
"DEFAULT_FEEDBACK_EMAIL": "feedback@asmoz.org",
"DEFAULT_FROM_EMAIL": "profesor@asmoz.org",
"EMAIL_BACKEND": "django.core.mail.backends.smtp.EmailBackend",
"EMAIL_HOST": "safemail.euskaltel.net",
"EMAIL_PORT": 587,
"EMAIL_USE_TLS": false,
Los datos resaltados en negrita cambiarn en cada instalacin. Debes usar tus propios datos SMTP
(a no ser que uses tambin el proveedor Euskaltel, en cuyo caso valdran estos mismos).
Para el caso del CMS, se deben indicar los mismos datos pero usando el fichero cms.env.json.
5
Internacionalizacin (i18n) y localizacin (l10n)
edX ofrece soporte para visualizar el LMS y el CMS en distintos idiomas. Las traducciones se
gestionan a travs de la web www.transifex.com. Existe tambin un grupo de discusin en Google
Groups, bajo el nombre de openedx-translation, donde se tratan los asuntos relacionados con la
i18n y l10n de la plataforma.
Para que edX funcione en otro idioma distinto al ingls, por ejemplo en castellano (es_ES), se han
de seguir los siguientes pasos en la mquina virtual:
[https://www.transifex.com]
hostname = https://www.transifex.com
username = user
password = pass
token =
El username y el password son las credenciales de tu usuario en transifex.com, que debers crear.
Al crear tu usuario transifex nete al proyecto edx-platform correspondiente a tu idioma4. El
campo token se deja en blanco.
2. Aade el idioma que quieras usar en el fichero conf/locale/config . Para nuestro ejemplo, es_ES :
{
"locales" : ["en", "es_ES"],
"dummy-locale" : "eo"
}
# Busca las siguientes variables y sustituye su valor por el que aparece aqu
USE_I18N = True
LANGUAGES = ( ('es_ES', 'Spanish'), )
TIME_ZONE = 'Europe/Madrid'
LANGUAGE_CODE = 'es_ES'
$ cd /edx/app/edxapp/edx-platform/
$ tx pull -l en_US
$ tx pull -l es_ES
6
$ cp /edx/app/edxapp/edx-platform/conf/locale/en_US/LC_MESSAGES/* /edx/app/edxapp/edx-
platform/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).
1) Seleccionar Tools/Import
5 https://github.com/edx/edx-demo-course
7
3) Comprobar que las tareas de importacin finalizan correctamente
8
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.
9
Instalacin y configuracin de la versin de produccin
Requerimientos Hardware
Nota: eso ejecutar mysql, memcache, mongo, y todos los servicios edX (lms, studio, foro,
ora/discern) en un nico servidor. En configuraciones de produccin se recomienda que estos
servicios se ejecuten en diferentes mquinas y que se aada un balanceador de carga.
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
Advertencia: las siguientes instrucciones asumen que el servidor en el que las ejecutes es una
versin de Ubuntu 12.04 recin instalada (sin ninguna configuracin ni aplicacin adicional).
Lanza una instancia de Ubuntu 12.04 server y conctate como root o como un usuario con
permisos de root.
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
cd /var/tmp/configuration
cd /var/tmp/configuration/playbooks
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
Podras querer cambiar los puertos que usa edX por defecto para Studio y para la vista Preview del
LMS por subdominios. Por defecto, nginx har una redireccin de studio.* al proceso studio de
gunicorn.
cd /var/tmp/configuration/playbooks/edx-east
Uso de manage.py
Conctate al servidor y sitate en el directorio /edx/app/edxapp/edx-platform directory para usar
manage.py
12
Verificar los servicios en ejecucin
Reiniciar servicios
Puedes usar el script /edx/bin/update para actualizar las versiones edX a las ltimas que existan en
el repositorio git.
13
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]
Para compilar los recursos javascript y css fuera del script de actualizacin, ejecuta los siguientes
comandos:
sudo -u edxapp bash
source /edx/app/edxapp/edxapp_env
cd /edx/app/edxapp/edx-platform
rake lms:gather_assets:aws
rake cms:gather_assets:aws
Resolucin de problemas
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 .
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.
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
Indicar que el tema grfico a usar es el de Stanford
Editar ../lms.env.json
aadir las siguientes lneas
THEME_NAME : stanford,
TIME_ZONE: Europe/Madrid,
MKTG_URL_LINK_MAP : {
CONTACT: null,
FAQ: null,
HONOR : null,
PRIVACY: null
},
Copiar el fichero _stanford.scss a lms/static/
15
cp /edx/app/edxapp/themes/stanford/static/saas/_stanford.scss lms/static/saas
16