1. Install Software

We will use Software Collections to satisfy majority of the following software requirements:

Note

This tutorial is run from the perspective of an account that has sudo access but is not root.

  1. Enable the EPEL and Software Collections repositories:

    CentOS 6/7
    sudo yum install centos-release-scl
    
    RHEL 6
    sudo subscription-manager repos --enable=rhel-server-rhscl-6-rpms
    # Repository 'rhel-server-rhscl-6-rpms' is enabled for this system.
    
    RHEL 7
    sudo subscription-manager repos --enable=rhel-server-rhscl-7-rpms
    # Repository 'rhel-server-rhscl-7-rpms' is enabled for this system.
    

    Warning

    For RedHat you may also need to enable the Optional channel and attach a subscription providing access to RHSCL to be able to use this repository.

  2. Add Open OnDemand’s repository hosted by the Ohio Supercomputer Center:

    CentOS/RHEL 6
    sudo yum install https://yum.osc.edu/ondemand/1.6/ondemand-release-web-1.6-1.el6.noarch.rpm
    
    CentOS/RHEL 7
    sudo yum install https://yum.osc.edu/ondemand/1.6/ondemand-release-web-1.6-1.el7.noarch.rpm
    
  3. Install OnDemand and all of its dependencies:

    sudo yum install ondemand
    

Note

For some older systems, user ids (UID) may start at 500 and not the expected 1000. If this true for your system, you will need to modify the /etc/ood/config/nginx_stage.yml configuration file to allow these users access to OnDemand:

# /etc/ood/config/nginx_stage.yml
---

# ...

# Minimum user id required to generate per-user NGINX server as the requested
# user (default: 1000)
#
min_uid: 500

# ...

When Installing OnDemand From Source

Installing OnDemand from RPMs should provide all of the system dependencies. For users attempting to install OnDemand from source on non-CentOS/RHEL systems, it may be useful to know that OnDemand has several other build and run time dependencies that may need to be installed on the web node.

Table 1.1 System dependencies
Program OnDemand Component
Rsync /var/www/ood/apps/sys/myjobs/app/models/workflow.rb
GNU Timeout /var/www/ood/apps/sys/myjobs/app/models/filesystem.rb
File /var/www/ood/apps/sys/file-editor/app/controllers/pages_controller.rb
Xmllint /opt/ood/ondemand/root/usr/sbin/passenger-status
GNU Wget /opt/ood/mod_ood_proxy/lib/analytics.lua

Note: GCC is a build time dependency and is only required when building OnDemand from source.