
Open edX es un software muy versátil. Puedes realizar una instalación en un solo servidor con todos sus componentes, puedes separarlos en servidores independientes, instalarlo en la nube en AWS o Google Cloud Platform; o usar contenedores docker y kubernetes. En esta entrada hablaremos sobre la instalación tradicional. Lo primero, son los requisitos.
- Ubuntu 16.04 amd64
- 8 GB RAM (mínimo)
- 1 CPU de al menos 2 GHz
- 25 GB de espacio en disco duro
Si bien vemos, se trata de Ubuntu 16.04 que es una versión algo antigua, el soporte de esta versión de Ubuntu se extenderá hasta 2024. Lo que nos permitirá seguir trabajando sin problemas hasta ese entonces.
En mi caso, estoy realizando la instalación en un servidor local para pruebas, una pequeña Lenovo Tiny M92p (core i5 | 8 GB RAM | 32 GB SSD + 500 GB HDD). Una vez conectado vía SSH a la instalación limpia de Ubuntu 16.04 LTS amd64 lo primero a hacer es actualizar e instalar los parches de seguridad.
1 2 3 | $ sudo apt-get update -y $ sudo apt-get upgrade -y $ sudo reboot |
Luego de haber actualizado y reiniciado el servidor, estamos listos para continuar. Necesitamos un archivo config.yml con el dominio o ip que utilizaremos en nuestro directorio de trabajo. La variable EDXAPP_LMS_BASE sería el nombre de dominio de Open edX y EDXAPP_CMS_BASE sería el ip o nombre de dominio de Studio.
1 2 | EDXAPP_LMS_BASE: "192.168.1.200" EDXAPP_CMS_BASE: "192.168.1.200:18010" |
Lawrence McDaniel es un desarrollador especializado en Open edX y ha compartido unos scripts que simplifican la gestión de una instalación de Open edX. Puedes revisarlos y clonarlos en su repositorio github/lpm0073.
El script que nos interesa es edx.platform-install.sh. Este es el detalle de su contenido:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #!/bin/sh # Native Open edX Ubuntu 16.04 64 bit Installation # McDaniel # October 2017 # # To stand up a pristine single-server instance of Open edX Ginkgo.1 # this is a modification of the generic instructions from: # Native Open edX Ubuntu 16.04 64 bit Installation # https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/146440579/Native+Open+edX+Ubuntu+16.04+64+bit+Installation # # This script takes around 2 hours to complete. It is intended to be run unattended, on a background thread using # nohup. #--------------------------------------------------------- cd ~ # Prerequisites: ensure that locales are set on your server. if not the ansible boostrap script below will break. export LC_ALL="en_US.UTF-8" export LC_CTYPE="en_US.UTF-8" # Delve into these settings only if you are installing a lanuage other than English sudo locale-gen es_ES es_ES.UTF-8 sudo dpkg-reconfigure locales sudo dpkg --configure -a export LANG=es_ES.UTF-8 export LC_CTYPE=?~@~]es_ES.UTF-8?~@~] export LC_NUMERIC=?~@~]es_ES.UTF-8?~@~] export LC_TIME=?~@~]es_ES.UTF-8?~@~] export LC_COLLATE=?~@~]es_ES.UTF-8?~@~] export LC_MONETARY=?~@~]es_ES.UTF-8?~@~] export LC_MESSAGES=?~@~]es_ES.UTF-8?~@~] export LC_PAPER=?~@~]es_ES.UTF-8?~@~] export LC_NAME=?~@~]es_ES.UTF-8?~@~] export LC_ADDRESS=?~@~]es_ES.UTF-8?~@~] export LC_TELEPHONE=?~@~]es_ES.UTF-8?~@~] export LC_MEASUREMENT=?~@~]es_ES.UTF-8?~@~] export LC_IDENTIFICATION=?~@~]es_ES.UTF-8?~@~] # 1. Set the OPENEDX_RELEASE variable: #export OPENEDX_RELEASE=open-release/ginkgo.2 # Note: sometimes there are important bug fixes in master that are not included in the named releases. # to date i've always had the best luck with master. export OPENEDX_RELEASE=open-release/ironwood.master # 2. Bootstrap the Ansible installation: wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/ansible-bootstrap.sh -O - | sudo -H bash # 3. (Optional) If this is a new installation, randomize the passwords: wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/generate-passwords.sh -O - | bash # 4. Install Open edX: wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/native.sh -O - | bash > install.out |
Destripando un poco lo de arriba, tenemos que se configurará el locale es_ES para que la instalación quede en idioma español y además de eso, estará instalando la versión ironwood.master. Si deseamos instalar una versión diferente, solo es cuestión de buscar la que deseamos en la página de releases de Open edX y reemplazarla en la variable OPENEDX_RELEASE.
Ahora otorgamos permisos de ejecución al script. Como a veces nos podemos ocupar en otras cosas, es preferible utilizar algo que permita continuar la sesión SSH si nos desconectamos, para ello empleo tmux.
1 2 3 | $ chmod +x edx.platform-install.sh $ tmux $ sudo ./edx.platform-install.sh |
Esto comenzará el proceso de instalación y compilación de forma automatizada. Es recomendable monitorear la instalación, existen varias herramientas que pueden hacer eso. tmux nos podría ayudar a abrir/continuar la sesión SSH donde quedo. En particular yo empleo tmux y 2 líneas de comando adicionales monitoreando el servidor con top, otra con watch -n 120 /edx/bin/supervisorctl status y una última ejecutándose periódicamente con la salida del comando ls sobre el directorio de instalación. Este abordaje es suficiente para estar al pendiente de la instalación en caso de que la salida del comando de instalación nos parezca que se halla detenido.
El proceso de instalación tarda entre 40 a 60 minutos y al terminar podremos ver la portada de Ironwood en la dirección ip del servidor o nombre de dominio que hayamos asignado en el config.yml.


Hasta aquí esta entrada, en la siguiente se detallan los ajustes básicos de una instalación nativa de Open edX.
