OGF25/Install and Setup

From NorduGrid

Prerequisites

Local resource management system

To test A-REX service you have to setup one of the supported Local Resource Management Systems (PBS/Torque, SGE, Condor, fork,...) and you have your host certificates on default location(/etc/grid-security).

Certificates

To test most of the functionality of ARC you need to have a valid X509 host certificate, if you don't have it already you can generate one using KnowARC instant certificate authority (CA) running at https://vls.grid.upjs.sk/CA. You may find useful this short video demonstrating use of the instant CA. The generation of certificates for both user and server using web interface is presented in the video.

Dependencies

Mandatory (on client as well as server side)

   o make
   o autoconf>=2.56 (build)
   o automake>=1.8 (build)
   o C++ compiler and library (build)
   o libtool (build)
   o pkg-config (build)
   o gthread-2.0 version 2.4.7 or later (build, run)
   o glibmm-2.4 version 2.4.7 or later (build, run)
   o libxml-2.0 version 2.4.0 or later (build, run)
   o openssl version 0.9.7a or later (build, run)
   o e2fsprogs (build, run)
   o doxygen (build)
   o gettext (build, run)
   o cvs (build)
   o m4 (build)
   o build-essential (at least on Ubuntu, build)

Optional (mainly applicable on server side)

   o swig version 1.3.28 or later (build)
   o java sdk 1.4 or later for Java bindings (build, run)
   o python 2.4 or higher for Python bindings (build, run)
   o Grid Packaging Tools (GPT) (http://www.gridpackagingtools.com/) (build)
   o Globus Toolkit 4 (http://www.globus.org/) which contains (build, run)
     - Globus RLS client
     - Globus FTP client
     - Globus RSL
   o LHC File Catalog (LFC) (https://savannah.cern.ch/projects/jra1mdw/) (build, run)
   o CppUnit for unit testing (build)
   o Berkeley DB C++ interface (build, run)
  • Please note that depending on operating system distribution in order to build ARC1 you may need to install development versions of mentioned packages.
  • If you have Python version older than 2.4 it will not be possible to run the Storage service
    • Note: RHEL4 only has Python 2.3
  • If you have OpenSSL version older than 0.9.7g A-REX, CHARON and ECHO can not be configured with TLS
    • Use http instead of https

Building the code

  • Get the source.
  • Unpack it and cd into the created directory.
 tar -zxvf nordugrid-arc1-0.9.3-tech_preview_OGF25.tar.gz
 cd nordugrid-arc1-0.9.3-tech_preview_OGF25
  • configure the obtained code with
 ./autogen.sh
 ./configure --prefix=PLACE_TO_INSTALL_ARC1

Choose installation prefix wisely and according to the requirements of your OS and personal preferences. ARC1 should function properly from any location. By default installation goes into /usr/local if you omit the '--prefix' option. For some modules of ARC1 to work properly you may need to set up the environment variable after installation:

 export ARC_LOCATION=PLACE_TO_INSTALL_ARC

On some systems 'autogen.sh' may produce few warnings. Ignore them as long as 'configure' passes without errors. But in case of problems during configure or compilation, collect them and present while reporting problems. If the previous commands finish without errors, compile and install ARC1

 make
 make install

On some systems gmake may be needed instead.

Configuring A-REX

  • In all files check if path to modules (<ModuleManager><Path></Path></ModuleManager>) is correctly:
<ModuleManager>
  <Path>XXX</Path> (default is /usr/local/lib/arc/ when PREFIX was not set in other case 
                    it shall be @PREFIX@/lib/arc/ or @PREFIX@/lib64/arc/ for installation on 64bit, ...)
</ModuleManager>
  • Change in files the 'localhost' to the fully qualified hostname of your cluster in both files
  • In config file related to A-REX:
    • change the 'nobody' (twice in the config) to user which shall be used for unix mapping
    • set in <charon:Location Type="file">XXX</charon:Location> the absolute location of your charon_policy.xml. The example policy can be found in $ARC_LOCATION/share/doc/arc directory (location of example config files may differe on different distributions)
  • For the HOPI and STORAGE services:
    • Make sure that the ports 60000 and 50000 are open for incoming connections in your firewall
    • set the PYTHONPATH env variable:
 export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.4/site-packages/:/usr/lib/python2.4/site-packages/  # (set python version to yours )
    • Create a directory /tmp/httpd and create some random file(s) there - this is your storage element
 mkdir /tmp/httpd
 echo "<html><head><title>welcome to hopi</title></head><body><h1>Welcome to Hopi</h1></body></html>" > /tmp/httpd/index.html
 chmod -R go+r /tmp/httpd/index.html
 chmod 755 /tmp/httpd
  • After you installed ARC1 a file named arc_arex.conf in /etc directory was created. In this file update the [common] block with proper information related to your lrms. Similarly for [cluster] and [queue/fork]. All configuration options can be found here.
    • Note: Do not remove or change the existing [grid-manager] block!

Start HED with the services

On some systems you will have to export LD_LIBRARY_PATH env variable before starting arched

arched -c arc1_services-arex-charon-echo.xml
arched -c arc1_services-storage-hopi.xml

Endpoints

If everything went well you should be running A-REX, CHARON, HOPI, ECHO and STORAGE service now. Their endpoints should be:

A-REX: https://example.org:60000/arex
CHARON: https://example.org:60000/Charon
ECHO https://example.org:60000/Echo
HOPI http://example.org:50000/hopi/
STORAGE: http://example.org:50000/Bartender

Test your services

  • See this page for info on how to run and test services.

Notes

  • There might be some backend scripts warnings visible in your /var/log/arched*.log files. Most probably they don't refer to harmful events (this reflects the development status of the code).
  • If you are trying to run A-REX on a machine with openssl version older than 0.9.7g then you will have to configure A-REX, CHARON and ECHO services without the tls layer (along with changing 'https' to 'http'). This config is used in that case.
  • If the staging in/out does not work with your A-REX service then you do not have proper globus packages installed or your openssl version is too old.