Ophidia Server Installation

This page presents the procedure to install, setup and test the Ophidia Server from sources and binary packages.

Note

Before proceeding with the following steps, check that you have all the pre-requisites installed. In particular system developmente libraries, as well MySQL server, MySQL devel libraries are required. Optionally, you may setup a web server to exploit also the web features.

Preliminary dependencies

GNU Matheval

GNU Matheval is required by the Ophidia Server. If not already available, build and setup GNU libmatheval.

on CentOS7

sudo yum install compat-guile18 compat-guile18-devel flex-devel guile-devel guile bison

Then download libmatheval-1.1.11 from http://ftp.gnu.org/gnu/libmatheval/ and install it in the path /usr/local/ophidia/extra running the following commands:

tar -xzf libmatheval-1.1.11.tar.gz
cd libmatheval-1.1.11
./configure --prefix=/usr/local/ophidia/extra
make
sudo make install

on Ubuntu 18

sudo apt-get install guile-2.0-dev libfl-dev flex bison libmatheval-dev libmatheval1

CJOSE

In order to activate OpenId Connect interface the library CJOSE (C library implementing the Javascript Object Signing and Encryption) has to be downloaded and installed from cjose as follows. Version 0.4.1 has been tested.

tar -xzf cjose-0.4.1.tar.gz
cd cjose-0.4.1
./configure --prefix=/usr/local/ophidia/extra
make
make install

Install the server

Installation from sources

Installation from source can be used on most Linux distros (i.e. CentOS6, CentOS7, Ubuntu 14, Ubuntu 18).

As root run:

mkdir /var/www/html/ophidia
chown ophidia:ophidia /var/www/html/ophidia

As ophidia user create a folder to download and build Ophidia source code.

mkdir /usr/local/ophidia/src

Download Ophidia Server release from https://github.com/OphidiaBigData/ophidia-server/releases. Alternatively you can get the latest development version from the git repository:

git clone https://github.com/OphidiaBigData/ophidia-server

Install the required dependencies:

  • openssl devel libraries
  • curl and related devel libraries
  • libXML2 devel libraries
  • jansson and related devel libraries
  • SSH2 devel libraries

For example on CentOS

sudo yum install openssl-devel curl libcurl-devel libxml2\* jansson\* libssh2\*

on Ubuntu

sudo apt-get install libxml2 libxml2-dev libjansson-dev libssh2-1-dev libssl-dev libssl1.1 libcurl4 libcurl4-openssl-dev curl

Ophidia Server requires gSOAP. You can download and install gSOAP 2.8.76 from http://sourceforge.net/projects/gsoap2/files/gSOAP/

unzip gsoap-2.8.76.zip
cd gsoap-2.8
./configure --prefix=/usr/local/ophidia/extra
make
make install

Build and install Ophidia Server

cd /usr/local/ophidia/src/ophidia-server
./bootstrap
./configure --prefix=/usr/local/ophidia/oph-server --with-framework-path=/usr/local/ophidia/oph-cluster/oph-analytics-framework --with-soapcpp2-path=/usr/local/ophidia/extra --enable-webaccess --with-web-server-path=/var/www/html/ophidia --with-web-server-url=http://127.0.0.1/ophidia --with-matheval-path=/usr/local/ophidia/extra/lib --with-cjose-path=/usr/local/ophidia/extra/lib
make
make install

Note

On Ubuntu 18 you should use the proper path for libmathevel

./configure --prefix=/usr/local/ophidia/oph-server --with-framework-path=/usr/local/ophidia/oph-cluster/oph-analytics-framework --with-soapcpp2-path=/usr/local/ophidia/extra --enable-webaccess --with-web-server-path=/var/www/html/ophidia --with-web-server-url=http://127.0.0.1/ophidia --with-matheval-path=/usr/lib/x86_64-linux-gnu --with-cjose-path=/usr/local/ophidia/extra/lib

Note

There are several configuration options that can be enabled/disabled by using the related parameters of command configure. For instance, the options --with-ws-hostname and --with-ws-port should be set to DNS name of the node which the server will be running on and to server port number (11732 by default). If hostname is localhost, use the following parameters:

--with-web-server-url=http://localhost/ophidia
--with-ws-hostname=localhost
--with-ws-port=11732

Use option --with-cjose-path to enable OpenId Connect interface as follows:

--with-cjose-path=/usr/local/ophidia/extra

Copy the user authorization files:

cp -r /usr/local/ophidia/src/ophidia-server/authz /usr/local/ophidia/oph-server/

Then, if not already available, create the following folders

mkdir -p /usr/local/ophidia/oph-server/log
mkdir -p /usr/local/ophidia/oph-server/authz/sessions
mkdir -p /var/www/html/ophidia/sessions

Note

In case of GSI support, install the prerequisites append the following configuration parameters to arguments of command configure:

--with-interface-type=gsi --with-globus-include=/usr/include/globus --with-globus-libs=/usr/lib64 --enable-voms --with-voms-include=/usr/include/voms --with-voms-libs=/usr/lib64

For GSI support, install host certificates (public key hostcert.pem and private key hostkey.pem) in /etc/grid-security and assign it the appropriate access privileges

chmod 644 /etc/grid-security/hostcert.pem
chmod 400 /etc/grid-security/hostkey.pem

Assure hostname is correctly set to the name stored into the certificate.

Append the Distinguished Name (DN) associated with the host certificate to the list of authorized DNs in /usr/local/ophidia/oph-server/authz/dn.dat, assigning it the privilege “write”. Create the text file “dn.dat” if it does not exist. For instance, append a line as follows

/C=XX/O=XX/OU=Host/L=XX/CN=YY:write

where YY has to be the hostname. This DN can be used for internal notifications, so that it shall be set to

  • the parameter NOTIFIER in Ophidia Server configuration file

    /usr/local/ophidia/oph-server/etc/server.conf
    
  • the parameter SOAP_USERNAME in Ophidia Analytics Framework configuration file

    /usr/local/ophidia/oph-cluster/oph-analytics-framework/etc/oph_soap_configuration
    

Create a proxy for Ophidia Server before starting the server:

su - ophidia
voms-proxy-init

Installation from RPM

To install the Ophidia Server package on CentOS7 download the ophidia-server rpm from https://download.ophidia.cmcc.it/rpm/1.5/ and run

sudo yum install ophidia-server-1.5*.x86_64.rpm

Change owner of the installation folders

sudo chown -R ophidia:ophidia /usr/local/ophidia
sudo chown -R ophidia:ophidia /var/www/html/ophidia

Installation from DEB

To install the Ophidia Server package on Ubuntu 18 download the ophidia-server deb from https://download.ophidia.cmcc.it/deb/1.5/ and run

sudo dpkg -i ophidia-server_1.5.*_amd64.deb

Change owner of the installation folders

sudo chown -R ophidia:ophidia /usr/local/ophidia
sudo chown -R ophidia:ophidia /var/www/html/ophidia

Finalize setup and start daemon

Create the server certificates (see this page) and copy them in /usr/local/ophidia/oph-server/etc/cert:

cp cacert.pem myserver.pem  /usr/local/ophidia/oph-server/etc/cert

Then modify the ophidiadb.conf file accordingly to your host configuration; specifically you need to change the password parameter (see Ophidia Server configuration).

/usr/local/ophidia/oph-server/etc/ophidiadb.conf

If not exists, create the Ophidia server log file:

touch /usr/local/ophidia/oph-server/log/server.log

Start the Ophidia server as Ophidia user:

su - ophidia
/usr/local/ophidia/oph-server/bin/oph_server 2>&1 > /dev/null < /dev/null &

Extra steps

If you have installed also the web server, you can also setup the Ophidia Web Server access.

In case OpenID Connect authentication interface is required, refer to the OpenID setup page.

If necessary, you can also update the users available and set the permissions. By default, two users are defined: admin and oph-test (see User Management to add new users). You can configure their features and permissions setting the files: users.dat (for changing the password) and users/<user_name>/user.dat (for extra features) in /usr/local/ophidia/oph-server/authz. Specifically you may want to modify the OPH_MAX_CORES values accordingly to your host resources.

An interesting option of oph_server is -d used for debugging mode. When Ophidia server is started with this option (as follows), server log is more verbose and operator-specific logs are saved in folder TXT_DIR. This option is useful mainly for developers and should be enabled only for debugging as it introduces much overhead. See Ophidia Server configuration for additional information.

su - ophidia
/usr/local/ophidia/oph-server/bin/oph_server -d 2>&1 > /dev/null < /dev/null &

Finally, to avoid typing the whole executable path, you may add it to the PATH environmental variable with:

export PATH="/usr/local/ophidia/oph-server/bin:$PATH"