Setup $ORCA_HOME for ORCA 4.x

Prerequisites

While the structure of $ORCA_HOME in 4.x series is largely similar to 2.x and 3.x series, there are some differences. The container.properties file that described the deployment of ORCA in a Tomcat container has been renamed into orca.properties and the its content has changed (see below).

Here we summarize the important points about the structure of $ORCA_HOME in ORCA 4.x series vs. previous versions:

  • The orca.properties file is now the only place that contains the pointer to the database used by ORCA
  • The config.xml file has not changed. NDL files also have not changed. AM site properties files have not changed.
  • The XMLRPC controller that provides ORCA and GENI interfaces is now a *separate executable*. It is configured separately with a its own configuration directory, referred to as $ORCA_CONTROLLER_HOME.
  • Controller and AM configuration files have not changed compared to ORCA 3.x, although controller configuration will now reside under $ORCA_CONTROLLER_HOME, not $ORCA_HOME.
  • Database schema has not changed

Setup

Once you decide which host ORCA container will run on, you can begin configuring ORCA on it.

Set $ORCA_HOME (typically /opt/orca or similar). Change ownership of this directory to the user on whose behalf the euca site authority is going to run. 'geni-orca' is the user and 'nonrenci' is the group in this example. The user and group are presumed to exist.

$ export ORCA_HOME=/opt/orca 
$ mkdir -p $ORCA_HOME 
$ cd $ORCA_HOME
$ chown -R geni-orca:nonrenci .

Populate directories

It is easiest to populate the $ORCA_HOME by checking out a sample configuration from the SVN repository:

$ svn co https://geni-orca.renci.org/svn/orca/trunk/server/orca $ORCA_HOME

Next the installation needs to be customized.

$ORCA_HOME/config/orca.properties

An example of 'orca.properties' for a container can be found here. Modify this file to tailor to your installation:

  • Change 'protocols.soapaxis2.url' to point to this host and proper port (usually 11080)
  • Generate and change 'container.guid'. You can use 'uuidgen' program that ships with many Linux distros and Mac OS X. You can also use ORCA tools that come with a source distribution:
    $ cd $ORCA_SRC/tools/config
    $ ant guid
    
  • Adjust the database settings
  • Adjust the admin user login and password (NOTE: pequod allows setting login/password per container, so follow best practices and set different passwords on different containers.)
  • Make sure emulation is turned off
  • Optionally, if you want to make the actors in the container talk to the RENCI Actor Registry, follow instructions for configuring with registry.
    • From Camano 3.0+ on, this is the recommended way to interconnect actors within and between containers.

$ORCA_HOME/config/config.xml

This file contains the definitions of ORCA actors placed in this container. The contents is heavily dependent on your deployment type. Please refer to top-level documentation for more information.

$ORCA_HOME/config/runtime

Note that in ORCA 3.x series, the runtime directory was under $ORCA_HOME, now it is under $ORCA_HOME/config.

Generate admin security configuration:

$ cd $ORCA_SRC/tools/config
$ ant security.create.admin.config

Generate GUIDs and certificates for ALL the actors in your container (the number of actors is dependent on your deployment; actor type is not important). Store the guids somewhere (a plain text file), which will be used for configuring the actors later. Let ORCA_SRC be the root of the downloaded ORCA source:

$ cd $ORCA_SRC/tools/config
$ ant guid
$ ant security.create.actor.config -Dactor=<guid_output_from_previous_command>

Store runtime admin and actor credentials in $ORCA_HOME.

$ cp -r $ORCA_SRC/tools/config/runtime/* $ORCA_HOME/config/runtime/

$ORCA_HOME/startup

Copy the orca-startup.tgz created during build process and untar its contents under $ORCA_HOME/startup

$ tar -zxf orca-startup.tgz -C $ORCA_HOME

Other configuration files

Authority actors require additional configuration files that are also usually placed under $ORCA_HOME. They are discussed in authority actor configuration.