Instalación del entorno de desarrollo de edX

Instalación del entorno de desarrollo de edX

 

La instalación se hará sobre Ubuntu Server 12.04 Precise Pangolin, esta es la última versión LTS. Como seguramente no tengamos esa versión en nuestro equipo o no queramos ensuciar nuestro sistema operativo host, vamos a optar por montar el entorno de desarrollo en un entorno virtualizado con LXC.

Instalación de herramientas de espacio de usuario:

sudo apt-get install lxc debootstrap 

Crear el contenedor:

lxc-create -n edx -t ubuntu 

Editar la red de la máquina virtual:

sudo vim /var/lib/lxc/edx/rootfs/etc/network/interfaces allow-hotplug eth0 iface eth0 inet static address 10.0.3.10 netmask 255.255.255.0 network 10.0.3.0 broadcast 10.0.3.255 gateway 10.0.3.1 dns-nameservers 8.8.8.8 

Iniciamos la máquina virtual, el usuario y la contraseña para entrar son ubuntu/ubuntu:

sudo lxc-start -n edx 

Si todo ha ido bien podemos apagar la máquina para acceder con un terminall mejor a través de SSH. Desde la máquina host:

sudo lxc-stop -n edx 

La volvemos a iniciar pero en modo demonio:

sudo lxc-start -n edx -d 

Por último nos falta configurar en el host el routing para que la máquina virtual pueda salir a Internet. Sustituir wlan0 por el nombre del interfaz por el que estamos conectardos a Internet. Así que ejecutamos:

sudo su - echo 1 \> /proc/sys/net/ipv4/ip\_forward iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE 

Puesta a punto del software para desarrollar

Instalar el cliente de Git en la máquina virtual, donde trabajaremos en esta sección:

ssh ubuntu@10.0.3.10 (contraseña ubuntu) sudo apt-get install git-core 

Clonamos el repositorio Git de trabajo:

git clone https://github.com/alabs/edx-platform.git ~/edx-platform 

Instalar entorno:

cd ~/edx-platform ./scripts/create-dev-env.sh 

Ahora creamos el entorno local para Python:

sudo apt-get install python-virtualenv virtualenvwrapper mkvirtualenv mitx workon mitx 

Instalamos dependencias:

sudo apt-get install python-pip cd ~/edx\_all/edx-platform pip install -r requirements/edx/pre.txt pip install -r requirements/edx/base.txt pip install -r requirements/edx/post.txt bundle install npm install 

Creamos bases de datos y migraciones:

rake django-admin[syncdb] rake django-admin[migrate] rake cms:update\_templates 

Lanzamos CMS y LMS en diferentes terminales:

rake cms[dev,0.0.0.0:8001] rake lms[cms.dev,0.0.0.0:8000] 

Y ahora desde el host podemos acceder desde el navegador al interfaz del alumno en:

http://10.0.3.10:8000/

Y al interfaz del profesorado en:

http://10.0.3.10:8001/