Instalación nativa local de Open edX

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.

$ 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.

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.

$ 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.

Página principal de la instalación
Página de Studio

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


avatar
Moisés Serrano Samudio Médico de atención primaria, fotógrafo aficionado, apasionado de las tecnologías relacionadas con el EdTech y el eHealth y diseñador/desarrollador de sitios web de salud. Médico, apasionado del EdTech/eHealth y diseñador/desarrollador de sitios web de salud.

Comentarios

  1. no es muy claro la parte de:
    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?~@~]

    Soy un poco nuevo en distribucion linux, que tan necesario es esto para el proceso, depronto si puedes explicar un poco mas el contenido de esta parte estaria muy agradecido.

  2. Hola Omar, esta parte hace referencia a los locales, esto permite que Open edX tome como referencia el idioma español al momento de instalar. De manera que al momento de utilizar solo es cuestión de seleccionar el idioma y ya funciona sin dificultades. Si no se definieran los locales en un principio, al momento de activar el idioma español en la plataforma tendríamos partes donde se presentan los idiomas español e inglés mezclados.

  3. Ya no es necesario instalar el language pack en Español si usamos desde un inicio los locales en español.

  4. Los locales ayudan a definir y uniformar el idioma interno con el que Open edX se comunica con el sistema operativo, la configuración regional, de moneda y todo eso. El idioma si se define específicamente después al instalar el paquete de idioma es-419.

  5. Estimado quisiera me pueda ayudar para generar un script similar para ubuntu 18.04 estimado, o que se debe modificar en este para funcionar en otra version

  6. Hola. La instalación oficial es sobre Ubuntu 16.04 LTS. Se podría modificar el script, pero te expones a tener fallas y que sea más difícil conseguir ayuda y soporte. Aún 16.04 tendrá soporte al menos hasta abril 2021. Imagino que llegado el momento desarrollarán algún proceso de migración a una versión LTS más reciente. Solo resta esperar que hace el equipo de desarrollo.

    Saludos!

  7. Hola, buenas noches Moisés. No ejecutar para instalar la plataforma como se menciona usando el Linux 16.04 LTS. Hice de acuerdo al pie de la letra, chmod +x edx.platform-install.sh. Me podrías ayudar :(.

    Saludos! Espero pronto su respuesta

  8. Hola Rodrigo. ¿Estás realizando una instalación local o directamente sobre un servidor en internet? En tu config.yml debe estar la info de los dominios/IP dónde funcionará Open edX. Puedes copiar tus archivos por acá para ayudarte.

    Saludos!

  9. Hola Moisés. Me gustaría poder contactarte por cualquier medio en línea o dónde te parezca. Necesito mucho de tu ayuda. Te agradecería mucho.

    Lo estoy haciendo en instalación local en Ubuntu 16.04 LTS. En config.yml tengo que poner la dirección IP tal como está en mi IP de Ubuntu?

    Saludos. Espero pronto tu respuesta

Deja una respuesta

Su email no será publicado. Required fields are marked *