< Back to blog page

Install and configure Open edX with Valamis

Business case

Your organization might be looking into using edX or any other course or learning management systems. Many large organizations can have multiple systems for learning or course activities. Migration and integration projects can be difficult. Thus, it is important to be able to control the learning data for reporting, analytics and other purposes. This is why Experience API standard and Learning Record Store were created.

With this integration, you can connect external course environment to your Liferay platform for storing the learning activities to provide single source for learning analytics and gamification. You can use this approach to connect multiple cloud based or third party learning solutions to Valamis and Liferay. For example, you are able to connect learning performance metrics to your organization competencies, HR metrics and social intranet platform.

About Open edX 

The Open edX platform is an open source, course management system (CMS) that is developed by edX. The Open edX platform is used all over the world to host Massive Open Online Courses (MOOCs) as well as smaller classes and training modules.

About Valamis

Valamis is an open source Learning Experience Platform (LXP), which not only enables formal learning but also social and informal learning. Valamis has strong emphasis on learning analytics, which are operated via Experience API (xAPI) and Learning Record Store (LRS). The combination of the Experience API and Valamis gives organizations a powerful tool to receive accurate analytics of learning processes of individuals as well as of groups of learners.

Installing Open edX

It should be noted, that the Official installation guide for Open edX using the Configuration repository only supports Ubuntu 12.04, but you can try to install it on a freshly installed Ubuntu 14.04 server with this guide. If you do, remember not to use default one-step install scripts, because it will check which platform version you are using.

When I installed the Open edX for the first time, I faced some issues. I was able to work around them with following steps:

In order to install the Open edX on Ubuntu 14.04 server, do the following steps:

1. Update and upgrade apt-packages

sudo apt-get update
sudo apt-get upgrade

2. Install some additional packages

sudo apt-get install -y build-essential software-properties-common python-software-properties curl git-core libxml2-dev libxslt1-dev python-pip python-apt python-dev  libxmlsec1-dev swig
sudo pip install --upgrade pip
sudo pip install --upgrade virtualenv

3. Clone the configuration repository

cd /var/tmp
git clone -b release https://github.com/edx/configuration

You should allow password-based SSH authentication. Edit file:

configuration/playbooks/roles/common/defaults/main.yml
and set COMMON_SSH_PASSWORD_AUTH to "yes".

 

4. Install requirements

cd /var/tmp/configuration
sudo pip install -r requirements.txt

5. Run the edx_sandbox.yml playbook in the configuration/playbooks directory

cd /var/tmp/configuration/playbooks && sudo ansible-playbook -c local ./edx_sandbox.yml -i "localhost,"

6. Run Open edX

Go to http://localhost and try Demonstration course
 


Troubleshooting

1. If you got a message like this:

update-alternatives: error: no alternatives for libblas.so.3gf

then you have to modify the file:

/var/tmp/configuration/playbooks/roles/edxapp/tasks/python_sandbox_env.yml
as follows:

 

Replace this 

command: update-alternatives --set libblas.so.3gf /usr/lib/libblas/libblas.so.3gf

with

command: update-alternatives --set libblas.so.3 /usr/lib/libblas/libblas.so.3

and then replace this line

command: update-alternatives --set liblapack.so.3gf /usr/lib/lapack/liblapack.so.3gf

with the following

command: update-alternatives --set liblapack.so.3 /usr/lib/lapack/liblapack.so.3

2. If you got message like this:

msg: Failed to validate the SSL certificate for download.elasticsearch.org:443. Use validate_certs=no or make sure your managed systems have a valid CA certificate installed. Paths checked for this platform: /etc/ssl/certs, /etc/pki/ca-trust/extracted/pem, /etc/pki/tls/certs, /usr/share/ca-certificates/cacert.org /etc/ansible

then you have to modify the file:

/var/tmp/configuration/playbooks/roles/elasticsearch/defaults/main.yml
by replacing https with http.

 

Configure Open edX for Valamis using Experience API

For the next step we configure Experience API integration between Open edX and valamis. Open edX will act as a Experience API client and send statements to Learning Record Store in Valamis. Client will authenticate using secure OAuth to LRS.

After you have installed Open edX platform and Valamis successfully, you should install edx-xapi-bridge

$ git clone https://github.com/adlnet/edx-xapi-bridge.git
$ cd edx-xapi-bridge
$ virtualenv env
$ source env/bin/activate
(env)$ pip install -r requirements.txt
(env)$ deactivate

Edit the file xapi-bridge/settings.py and change the properties to match your environment.

Configuring settings.py file: in this file you should replace 3 fields, where

1) LRS_ENDPOINT = 'http://site.com/valamis-lrs-portlet/xapi/'

2) LRS_USERNAME and LRS_PASSWORD you can get, when you are create new account in Valamis Client Manager.

For example, for create new user in Valamis, open 'http://site.com/web/valamis/admin' (you need to setup Valamis Admin portlet and your url may vary) and click "+ADD NEW CLIENT" button
 


then write Application Title, for example, edx and mark all checkboxes at "Autorization Scope". Check, that Authentication Type is oauth and click "Save".
 


After that you can get "client id" and "client secret", where "client id" is LRS_USERNAME and "client secret" is LRS_PASSWORD. You should write all values with single quotes.
 


After configuring settings.py file you can run edx-xapi-bridge

$ source env/bin/activate
(env)$ python xapi-bridge [watchfile]
(env)$ deactivate

where [watchfile] is the path to the log to be watched. Default value [watchfile] is /edx/var/log/tracking.log. Make sure the user account running the xapi-bridge has permissions to read the log file.

Anna Rimmer
System Specialist


Prev: Digital Transformation of Learning as Competitive Advantage
Next: Setting up Valamis from GitHub