Tu propio servidor Moodle gratuito en la nube OpenShift

¿Recuerdas que ya hablamos en DiarioLinux sobre la plataforma OpenShift Express? Efectivamente, es el servicio en la nube de RedHat que te permite montar – por el momento  – tu propio servidor Linux online de forma gratuita. Pues bien, vengo con novedades. La primera es que, gracias a este reciente podcast de FLOSS Weekly, nos enteramos de que  OpenShift usa internamente instancias AWS (Elastic Cloud Computing, EC2) de Amazon. Así que RedHat está apostando muy fuerte por su servicio PaaS (Platform as a Service) cuando ofrece gratuitamente algo que a ellos les estará costando un buen puñado de dólares. Como bien comentan en el propio podcast, esto es temporal (lógico), hasta conseguir una masa crítica de usuarios.

Pero la novedad que da título a este post consiste en la posibilidad de montar tu propio servidor Moodle online usando OpenShift. Para ello seguiremos las instrucciones dadas por burningTyger, el autor original de la receta.

En resumidas cuentas, lo primero es instalar las herramientas rhc para conseguir controlar OpenShift desde la línea de comandos (o ¿debería decir «de órdenes», para no pecar de indocumentado? 😉 Este paso lo dejamos bien descrito en el artículo anterior de DiarioLinux, por lo que vuelvo a remitirte a su lectura. Lo siguiente es clonar el repositorio de Moodle que burningTyger tiene en GitHub.

  git clone git://github.com/burningTyger/os_moodle.git

Esto nos creará en el directorio os_moodle una copia del servidor Moodle especialmente preparado para ser ejecutado en OpenShift.  Situados en os_moodle, lanzamos los siguientes comandos:

rhc-ctl-app -a moodle -e add-mysql-5.1 -l tu_login
git remote add openshift tu_url_git_openshift

La primera línea indica que queremos montar una nueva aplicación sobre OpenShift, a la que daremos e nombre de moodle y, a continuación, añadirle un servidor mysql-5.1. «tu_login» es el identificador de usuario que diste en OpenShift (normalmente tu dirección email). La segunda línea indica que al repositorio moodle que acabas de crear en tu disco, quieres añadirle una referencia al repositorio que tienes en OpenShift. La dirección de este último es lo que tienes que poner en el campo «tu_url_git_openshift». Esta url la puedes obtener listando tus aplicaciones desde la línea de comandos (ops… otra vez 😉

$ rhc-domain-info -l tu_login_openshift -p tu_password

Verás algo así:

 Git URL: ssh://xxxxxxabc123def456xxxxx789abcxxx@moodle-tudominio.rhcloud.com/~/git/moodle.git

Ya está todo en orden. Ahora sólo hace falta «subir» a OpenShift (hacer un push) lo que tienes en tu disco duro:

   git push -f openshift master

¡Fin! Tu instancia Moodle estará lista para ser configurada (nombre, cursos, alumnos…) desde la URL de tu aplicación (la que se ve en la Git URL)

http://moodle-tudominio.rhcloud.com

Probablemente te interese activar el soporte cron de OpenShift para lanzar el proceso cron de Moodle periodicamente. Para ello, debes especificar que quieres hacer uso de cron:

$ rhc-ctl-app -a moodle -e add-cron-1.4

A continuación, crea el directorio moodle/.openshift/cron/hourly y dentro, crea un script llamado reloj.sh con el siguiente contenido:

#!/bin/bash
/usr/bin/php  ${OPENSHIFT_HOMEDIR}/app-root/repo/php/admin/cli/cron.php >/dev/null

No te olvides de asignarle permisos de ejecución (chmod +x ./reloj.sh). A continuación, nos situamos nuevamente en moodle/ y añadimos el script recién creado al conjunto de ficheros gestionados por git (add+commit) y subimos los cambios a OpenShift (deploy).

$ git add .openshift/cron/hourly/
$ git commit -a -m "add reloj.sh hourly cron script"
$ git push

Un detalle final: dado que Moodle suele publicar actualizaciones periódicas, es recomendable descargarlas y mantener actualizado tu servidor. Este punto también está pensado. Basta con que descargues los updates del repo Git original y los subas a tu servidor en OpenShift:

$ git pull origin master
$ git push openshift master

En mi grupo de investigación estamos usando OpenShift como alojamiento para la demo del plugin Babelium para Moodle https://moodle-babelium.rhcloud.com . Como ves, OpenShift admite también direcciones https. Anímate a publicar ahí tu vídeo-respuesta 🙂