VirtualBox headless en servidor Scaleway

Esta semana he necesitado instalar una máquina virtual de VirtualBox en un servidor Scaleway (de 2.9€/mes) sin entorno gráfico. La primera duda ha sido… ¿se puede? 🙂 Lo primero que necesitamos es instalar VirtualBox. La particularidad es que Scaleway no tiene un kernel vanilla sino que está bastante personalizado para adaptarlo a esta empresa de cloud hosting. Así que hay que descargar el código del kernel, ajustar su configuración a la misma que usa Scaleway, compilar los módulos necesarios y ahora sí, descargar e instalar VirtualBox. Gracias a $DEITY, alguien se ha pegado el curro de preparar un script al efecto. La última parte de ese script instalar una máquina virtual Windows en VirtualBox (yo no lo necesito, he comentado esas líneas).

Bien, ya tenemos el kernel preparado y VirtualBox instalado. Ahora, ¿cómo demonios instalo una máquina virtual a partir de una imagen .iso si no tengo entorno gráfico? Bueno, simulando el entorno gráfico a través de phpVirtualBox (sí, existe tal engendro y funciona de lujo). Además, este tutorial te explica cómo instalarlo paso a paso.

Finalmente, si quieres acceder a la consola que VirtualBox abre por defecto cuando lanzas una máquina virtual Linux, podrás hacerlo vía RDP (Remote Desktop Protocol). Tampoco sabía que una VBoxHeadless abría el puerto 9000 para acceso RDP. Desde tu host remoto puedes ver la consola de VirtualBox vía rdesktop (en Linux) o vía Microsoft Remote Desktop en OSX.

También es posible usar la línea de comandos para lanzar la máquina virtualbox desde una shell en Scaleway (sin necesidad de usar phpVirtualBox, pero es mucho menos intuitivo)

Introducción a Open edX (II)

La arquitectura de la plataforma edX cuenta con varios componentes, tal y como puede apreciarse en la figura adjunta. Iremos desgranando todos ellos en diferentes posts.

arquitectura_edx

Hoy empezaremos a tratar los dos más importantes: el LMS (Learning Management System) y el CMS (Content Management System), éste último también conocido como edX Studio. El primero (LMS) forma la aplicación web y frontend que ven y usan todos los alumnos del sistema edX. El segundo (CMS) es la aplicación web que usan los profesores para crear y organizar los contenidos que irán al LMS.

Para empezar a probar tanto el LMS como el CMS de Open-edX hay varias posibles vías de instalación: 1)  instalar desde cero, en la máquina local – o remota, pero en el sistema de archivos físico de la máquina – , descargando el código fuente y las dependencias.2) Instalar en la máquina local o remota pero, en lugar de hacerlo sobre la propia máquina física, hacerlo sobre una máquina virtual (VirtualBox) usando Vagrant para simplificar/automatizar los pasos. 3) Instalar usando una máquina AMI preparada para la nube Amazon (AWS).

De estas tres formas, la más fácil es la última, se puede hacer en 10 minutos si ya dispones de una cuenta AWS. Lógicamente, ojo con los costes. AWS es una solución muy potente, versátil y con multitud de herramientas que facilitan el despliegue de aplicaciones en esa nube (IAAS, Infrastructure As A Service) , pero también es una de las plataformas en la nube más caras. ¿Alternativa? Usar DigitalOcean. Mucho más barato… pero no dispone de tantas facilidades y servicios como AWS. Hay que hacerlo todo de forma más artesanal…

Por otra parte, la instalación de edX puede hacerse como entorno de desarrollo (pruebas) y como entorno de producción (explotación). La versión de desarrollo es recomendable instalarla en local usando Vagrant (modo 2 de los tres citados). Realmente es una versión de edX limitada, no está configurada para hacer uso del módulo ORA (Open Response Assessor), permite entre otras cosas la evaluación automática de ejercicios, así como la evaluación entre pares), por ejemplo. Pero viene muy bien para probar por primera vez la plataforma y/o para desarrollar nuevas funcionalidades.

La versión de desarrollo se recomienda instalarla sobre una máquina 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 podría valer una máquina con menos recursos, es recomendable que tenga esa  capacidad en memoria debido al alto consumo de RAM de la máquina virtual). Se recomienda disponer al menos de 20GB de espacio en disco (sólo la máquina virtual, sin configurar, requiere de 2GB).

La versión de explotación requiere de una máquina online, con sistema operativo Ubuntu, similar a una m1.large en la nube Amazon (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 máquina física o bien crear internamente una máquina virtual e instalar la versión de producción sobre dicha máquina virtual.

En el siguiente post veremos en detalle cómo instalar una versión edX de desarrollo en la máquina local usando VirtualBox y Vagrant.