GridBank Installation Instructions DOWNLOAD SOURCE CODE IMPLEMENTATION DETAILS Pre-requisites: Please make sure you follow instructions in strict order. Copy GridBank code to any installation directory. Make sure GLOBUS_LOCATION environment variable points to location where your Globus Toolkit is installed (requires globus server bundle version 2 or later). 1) Set up Globus Toolkit for use with GridBank. First, generate header files and libraries of Globus I/O Module: $GLOBUS_LOCATION/sbin/globus-makefile-header -flavor=gcc32dbg globus_io Note: run the above command with the same flavor that you used when installing Globus Toolkit Second, modify file called globus_job_manager.c (this link is for version 2.0) in directory $GLOBUS_LOCATION/BUILD/globus_gram_job_manager-2.1. If you have different version of Globus, then just copy and paste resource usage code (search for "resource usage" and "getrusage" keywords). Then execute in the same directory: make make install This modification to Globus Toolkit will write resource usage file to /tmp directory after a job finished executing. GridBank Charging Module operation depends on this file. The name of the file is the client's certificate name (with all '/' replaced by '_') followed by .rur extension. Run Globus normally (globus-job-run) to make sure the resource usage file is generated. 2) GridBank code assumes that you have MySQL installed in /usr directory (requires /usr/include/mysql and /usr/lib/mysql in order to compile as is; you can have MySQL installed in another directory, but you'd have to change Makefile in gridbank/server/protocols to point to the right directory). If you don't have MySQL installed, a tar archive is included (from mysql web site). Untar it, follow installation instructions in /Docs/manual.html section 2.3, and run ./configure --prefix=/usr (to install the database in /usr). 3) Compile soapcpp and xerces-c libraries that come with GridBank (see instructions inside directories). 4) Create file in /etc/grid-security called "template-accounts": Open the file and add local (system) account names (see section 2.3 of my GridBank article for explanation of template accounts). Each account name must by followed by new line character (just like in grid-mapfile). 5) Create GridBank database by executing following commands (partial paths are given): Replace "globus_location" variable in all subdirectories of gridbank/server with the path to your Globus installation (i.e. GLOBUS_LOCATION). cd gridbank/server/accounting mv Makefile MakefileNormal mv MakefileCreateDB Makefile make su ./createdb exit mv Makefile MakefileCreateDB mv MakefileNormal Makefile rm createdb rm *.o Note: this assumes that MySQL server is running as root and must have root-only access (for security reasons). 6) Compile GridBank Security Module: cd gridbank/gb_io Note: Make sure to replace "globus_location" variable in Makefile with path to your Globus installation. make 7) Compile GridBank Server: cd gridbank/server Make sure to replace "globus_location" variable in Makefiles in all subdirectories with path to your Globus installation. sh install (or csh install depending on your shell) This should create 'gbserver' executable in gridbank/server directory. Run 'gbserver' as root: su ./gbserver 8)Compile GridBank Charging Module: cd gridbank/gbcm Note: make sure to replace "globus_location" variable in Makefiles in all subdirectories with path to your Globus installation. sh install (or csh install depending on your shell) This should create 'gbcm' executable in the same directory. Run 'gbcm' as root: su ./gbcm 9) Compile GridBank Payment Module: cd gridbank/gbpm Note: make sure to replace "globus_location" variable in Makefiles in all subdirectories with path to your Globus installation. sh install (or csh install depending on your shell) This should create 'gb-job-run' executable in gridbank/gbpm/gbpm-api/protocols. Run the command as user process (e.g. ./gb-job-run -amount 1.2 somehost.csse.uwa.edu.au /bin/date). Make sure you run $GLOBUS_LOCATION/bin/grid-proxy-init first). Also, there is a small GUI which you can run: java GBClient If you have further questions please email me.