INSTALLING HELIOS

Installing Helios isn't terribly hard itself, but it does require 
several prerequisites.  This file details the necessary steps that should work 
for several operating systems.  Check this distribution to see if there is 
another INSTALL.* file for your specific operating system.

The general steps involve:
* Install MySQL & helios_db Database Schema
* Configure helios.ini file
* Install Helios & dependencies
* Install Apache or other web server (optional; only to submit jobs via HTTP)

In general, you should probably install your MySQL database, then install 
Helios and its prerequisites on one server, and then install Apache and the 
job submission CGI if you want to submit jobs via HTTP.  Once you have Helios 
running on one host, installing and running Helios on other hosts will be 
easier.


GENERIC INSTRUCTIONS

The following instructions should work to install Helios on most Unix-style 
platforms.  If your platform has some of these things prepackaged (MySQL and
Apache, hopefully), you can save yourself some time by using the prepackaged 
versions.


1) Install MySQL & helios_db Database Schema

You'll need to install MySQL and create a database and a user that all the 
Helios hosts can log into.  Once you have MySQL up and running, you can use 
the sql/helios_schema.sql file to create the Helios database schema.  Open the 
file in a text editor, uncomment the lines that create the helios db user, and 
edit them as appropriate for your security situation.  Then use the following 
line to create the helios_db database:

    mysql -u root -p < sql/helios_schema.sql

You'll be prompted for the MySQL root user's password, then the helios_db 
database will be created with helios database user and all the tables 
necessary for the Helios system.


2) Configure helios.ini

Just about everything in Helios depends on a helios.ini file to specify 
initial settings and connection information for the Helios database.  The 
helios.pl service loader/daemon will look for its .ini file in 
the location specified by the HELIOS_INI environment variable, so adding 

    export HELIOS_INI=/path/to/helios.ini

to either your global user profile or the profile of the user you intend to run     
Helios under is probably a good idea.  

There is a sample helios.ini file included in the Helios distribution to help 
guide your initial install.  To specify the Helios database connection, specify 
the correct dsn, user, and password values in the [global] section.  Helios by 
default will place PID files for the daemons it launches in "/var/run/helios"; 
you may want to change this location by specifying the pid_path parameter.  
There are other parameters you can specify; check the helios.pl man page for 
more information. 


3) Install Helios & CPAN dependencies

Helios requires the following modules to be installed:

    DBI
    DBD::mysql
    XML::Simple
    Data::ObjectDriver
    TheSchwartz
    Config::IniFiles
    Error
    Pod::Usage

The easiest way to install these is to use the CPAN Helios bundle.  As the 
root user or via sudo, issue the following commands to run the CPAN shell and 
install the Helios bundle:

	perl -MCPAN -eshell
	cpan> install Bundle::Helios

If the HELIOS_INI environment variable is set, make test will 
attempt to use the information in the .ini file to connect to the specified 
Helios database and read configuration parameters from it.  If HELIOS_INI isn't 
set, that test will be skipped.
 
 
4) Final checks 

At this point, your Helios host should be ready to service jobs.  If you want 
to do further tests, you can use Helios::TestService.  Helios::TestService 
runs in your Helios collective like any other service, but it only records the 
job arguments passed to it in the Helios log.  Once you're satisfied your 
Helios host is configured properly, you can move on to installing Helios on the 
next host in your collective.


5) Install Apache & jobSubmit.pl CGI (optional)

Install Apache on the host(s) you want to send HTTP to submit jobs.  This 
server(s) will need to have the same database access as the other Helios 
hosts, regardless of whether it will be running jobs.  It's probably best to 
simply use your first host for this, at least until your get the rest of your
Helios collective up and running.  Make sure Apache is configured to run CGI 
programs.

You could also use another HTTP server with CGI capabilities.  There's no 
reason it shouldn't work, but Helios hasn't been tested with other web servers, 
so YMMV.

If you don't want to submit jobs via HTTP, you don't have to install Apache, 
though the Helios::Panoptes admin interface (packaged separately) will still 
need it.

Once the Helios base libraries are installed, you can optionally install the 
job submission CGI in your host's cgi-bin directory to support job submission 
via HTTP.  If your cgi-bin directory is, say, /usr/local/apache/cgi-bin:

    cp cgi-bin/submitJob.pl /usr/local/apache/cgi-bin/
    
should put submitJob.pl in the right place.  Remember to set the file's owner, 
group, and permissions make the file secure and executable by your web 
server. 
    
