Introduction

This document describes how the UNICORE appliance has been built and can be used.

The UNICORE appliance is based on the Centos [centos-img]. A number of adaptations has been done in order to run UNICORE services out of the box.

First of all, the EMI Yum repository has been added to the image to facilitate the installation of the EMI generated UNICORE packages. The repository description file can be found in the EMI documentation at [emi-repo-file].

Secondly, the following packages have been installed:

  • unicore-gateway

  • unicore-unicorex

  • unicore-tsi

Changes required

Some changes in comparison to the installation packages were required in order to make the system fully usable.

Gateway

Configuration files

Placeholders for contextualization parameters have been put in some configuration files. They will be replaced at contextualization time (cf. [context])

connections.properties
@@SERVER_NAME@@ = https://localhost:7777
gateway.properties
...
hostname = https://@@SERVER_NAME@@:8080
...

UNICORE/X

The UNICORE/X startup script in /etc/init.d/unicore-unicorex is unusable at least under Centos and Scientific Linux 5. This is a bug in the unicore-unicorex package and will be solved in the next version.

Additionally, the default configuration of the UNICORE/X package is using the Java TSI, which does not do user switching. This is in contrast to the Perl TSI, which does the user switching and thus required different directory permissions on the XNJS FILESPACE, which is configured in /etc/unicore/unicorex/xnjs_legacy.xml. The default FILESPACE is in /var/lib/unicore/unicorex/FILESPACE. The permissions should read drwxrwxrwt, which can be reached by issuing chmod 1777 /var/lib/unicore/unicorex/FILESPACE.

Configuration files

Placeholders for contextualization parameters have been put in some configuration files. They will be replaced at contextualization time (cf. [context])

uas.config
...
uas.targetsystem.sitename=@@SERVER_NAME@@
bes.common.name=BES-@@SERVER_NAME@@
bes.long.description=BES Interface for @@SERVER_NAME@@
...
wsrflite.xml
...
<!-- Configuration with Gateway -->
<property name="unicore.wsrflite.baseurl"
          value="https://@@SERVER_NAME@@:8080/@@SERVER_NAME@@/services"/>
...

TSI

The TSI has actually been installed in expectance of a cluster-enabled version of the UNICORE appliance. For the single node configuration, the NOBATCH TSI has been configured through /etc/init.d/unicore-tsi setup.

A login named demo has been added to the image, to which all requests for job execution or storage access will be mapped.

Contextualization

Most of the contextualization of the UNICORE image takes place in the /etc/rc.local file. After the invocation of . /mnt/stratuslab/context.sh, the following was added

if [ "${ENABLE_UNICORE}" == "true" ]; then
        SERVER_NAME=`hostname -f`
        sed -i -e 's/@@SERVER_NAME@@/'${SERVER_NAME}'/g' /etc/unicore/gateway/* /etc/unicore/unicorex/*
        /etc/init.d/unicore-tsi start
        /etc/init.d/unicore-gateway start
        /etc/init.d/unicore-unicorex start |tee /var/log/unicore/unicorex/init.d.log 2>&1
fi

The distinction of whether the UNICORE services are to be run at all is owed to the fact that clusters created with this image only need a single UNICORE head node.

As can be seen from this snippet, a number of configuration settings is done in the configuration files of the UNICORE components.

Starting an instance

The image is currently hosted on a virtual instance and can be referenced as [the_image].

In order to run the image, the following command can be used.

stratus-run-instance -t m1.large http://62.217.122.237/centos-5.5-x86_64-OpenMPI-2.0-unicore.img.gz --context='ENABLE_UNICORE=true'

As you can see, an additional context variable is given, telling the instance to run as a UNICORE frontend. This is due to the fact that the image is cluster-enabled (based on the Centos cluster image), where there’s only a single head-node required.

Using in instance from the URC

At the moment, the image is equipped with the default UNICORE demonstration certificates. Thus, a client needs to accept the UNICORE demo CA [demo_ca] and use the demo user certificate to access the instance.

The stratus-run-instance command will return an IP address that will be used by the deployed instance. This IP address can by used to look up the respective host name, e.g. using

$ host 62.217.122.207
207.122.217.62.in-addr.arpa domain name pointer vm078.one.ypepth.grnet.gr

Thus, the hostname of the target machine is vm078.one.ypepth.grnet.gr. You can use it for the registry URL and the site name in the URC or other UNICORE clients. The full reference is: