Generic Linux Installation

Corus is preferrably installed using the Chef cookbook (there is exhaustive documentation for the cookbook). We're still providing instructions for manual installation below.

Preparing the Environment

There is a bit of preparation to do before actually extracting the Corus package.


Before installing Corus you need to have Java installed on your machine. Corus requires at least Java 7. Also, Corus requires the presence of the $JAVA_HOME environment variable that points to the Java runtime you want to use (JRE or JDK).

Corus User

Since Corus is mainly a background process, we strongly suggest that the Corus server be installed and executed with the privileges of a restricted user. Using the useradd, create a new system user named corus:

sudo useradd corus

Using the groupadd command, create a group to which the corus user will belong (or you may simply prefer to associate the corus user to an already existing group). For example, creating an ops groups:

sudo groupadd ops

Associate the corus user to the group:

sudo usermod -G ops corus

Installation Directory

Next, you need to create a directory on your system in which you will install Corus. For example:

sudo mkdir /opt/corus

Extract the Corus Package

Extract the Corus package tarball into the Corus installation directory created above (adjust the Corus version number to match yours):

sudo tar --directory=/opt/corus -xvf sapia_corus_server_package-5.0-linux64.tar.gz

You should now have the /opt/corus/sapia_corus_server_package-5.0 directory. A good practice is to create a current symlink, and point it to the newly created directory:

sudo ln -s /opt/corus/sapia_corus_server_package-5.0-linux64 /opt/corus/current

Make sure you assign the ownership to the corus user:

chown -R corus /opt/corus/current

Configure the Environment

Corus requires a CORUS_HOME environment variable, which should point to the installation directory. You must also add the bin directory under CORUS_HOME to the PATH environment variable. A good practice on Linux is to do all of this in a shell script (say, that you put under /etc/profile.d). The script would contain the following:

export CORUS_HOME=/opt/corus/current

With the above setup, you should be able to run Corus manually, by simply typing corus in the terminal.

Configure Discovery

Corus uses IP multicast for cluster discovery by default. But that method can be faulty (multicast might not be allowed in your network, or configured to go through routers), and it is typically not available in the cloud.

Corus supports TCP-based discovery: the different supported mechanisms (and their respective configuration) is explained in the Discovery section. Please consult that section for the details.

Run as a Daemon

A script is available to register Corus as a system service. It is found under the following path: $CORUS_HOME/bin/corus.init.d-nowrapper and copy it under the /etc/init.d directory and name it corus:

sudo cp $CORUS_HOME/current/bin/corus.init.d-nowrapper /etc/init.d/corus

The use your editor (vi, vim, etc.) to set the JAVA_HOME, CORUS_HOME and CORUS_GROUP variables (set the group to the one to which you've assigned the corus user).

Register with the Run Levels

This part of the procedure may vary according to the Linux flavor you're using. We're describing the steps for RedHat flavors (RedHat, Centos, Fedora).

Execute the chkconfig command:

sudo chkconfig --add /etc/init.d/corus

You can validate the run level registration as follows:

sudo chkconfig --list | grep corus
corus 0:off 1:off 2:on 3:on 4:on 5:on 6:off

As you can see upon installation, the Corus service is not running. You can start it using the service command, as follows:

sudo service corus start

Once you start the Corus service, you can validate its proper execution by looking at the Corus log files under the $CORUS_HOME/logs directory.

You can also start the Corus CLI (Command Line Interface) to connect to the server. Simply type coruscli in a terminal window: this will connect you to the Corus instance running locally.