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
You can download and install these packages manually, or you can use the
CPAN shell. As your root user or via sudo, issue the following commands to
install Helios and its dependencies:
perl -MCPAN -eshell
install Data::ObjectDriver
install TheSchwartz
install Error
install Test::Simple
install Pod::Usage
install Config::IniFiles
install Helios
You may also try the Helios generic CPAN bundle. It may not work in all
cases on all systems, but it may save you some time:
perl -MCPAN -eshell
install Bundle::Helios::Generic
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/
chown root.root /usr/local/apache/cgi-bin/submitJob.pl
chmod a+rx /usr/local/apache/cgi-bin/submitJob.pl
should put submitJob.pl in the right place and set the proper ownership and
permissions.