1. Install Software From RPM

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 dependency repositories on CentOS/RHEL 7 only:

    CentOS 7
    sudo yum install centos-release-scl epel-release
    
    RHEL 7
    sudo yum install epel-release
    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. Enable dnf modules and repositories for dependencies on CentOS/RHEL 8 only:

    dnf module enable ruby:2.7
    dnf module enable nodejs:12
    

    CentOS 8 only

    sudo dnf config-manager --set-enabled powertools
    

    RedHat 8 only

    sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
    
  3. Add Open OnDemand’s repository hosted by the Ohio Supercomputer Center:

    sudo yum install https://yum.osc.edu/ondemand/2.0/ondemand-release-web-2.0-1.noarch.rpm
    
  4. Install OnDemand and all of its dependencies:

    sudo yum install ondemand
    
  5. (Optional) Install OpenID Connect with Dex package

    Note

    If authenticating against LDAP or wishing to evaluate OnDemand using ood user, you must install ondemand-dex. See Add LDAP Support for details on configuration of LDAP.

    sudo yum install ondemand-dex
    
  6. (Optional) Install OnDemand SELinux support if you have SELinux enabled. For details see SELinux

    sudo yum install ondemand-selinux
    

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

# ...