HomePages/shamardin/GlobusSandbox

Как мы ставим глобус

Предварительная подготовка

yum install java-1.6.0-openjdk-devel ant ant-nodeps xinetd openssl-devel gcc-c++ perl-XML-Parser ccache
groupadd -r globus
useradd -r -g globus -d /opt/globus -s /sbin/nologin -c "Globus service account" globus

Установить хостовые сертификаты а так же containercert.pem, containerkey.pem Сделать что-то вроде

setfacl -m user:globus:r /etc/grid-security/containerkey.pem
setfacl -m user:globus:r /etc/grid-security/containercert.pem

/etc/profile.d/globus.sh:

export GLOBUS_LOCATION=/opt/globus-4.2.1
export GLOBUS_USER=globus
export GLOBUS_GROUP=globus
export GLOBUS_TCP_PORT_RANGE=20000,25000
. $GLOBUS_LOCATION/etc/globus-user-env.sh
. /etc/profile.d/globus.sh
mkdir -p $GLOBUS_LOCATION
chown globus:globus $GLOBUS_LOCATION
usermod -d /opt/globus-4.2.1 globus

Установка

mkdir /tmp/gt4
tar -C /tmp/gt4 -xjf gt4.2.1-all-source-installer.tar.bz2 
chown -R globus:globus /tmp/gt4
cd /tmp/gt4/gt4.2.1-all-source-installer
sudo -u globus ./configure --prefix=/opt/globus-4.2.1
sudo -u globus make gridftp install
sudo -u globus make wsgram install
sudo -u globus make wsmds install
sudo -u globus make gt4-java-admin install

Настройка

Общие

Дописать в /etc/services:

# Local services
myproxy-server  7512/tcp                        # Myproxy server
gsiftp          2811/tcp
gsigatekeeper   2119/tcp                        # Globus Gatekeeper

GridFTP

Сделать /etc/xinetd.d/gridftp следующего содержания:

service gsiftp
{
        instances               = 100
        socket_type             = stream
        wait                    = no
        user                    = root
        env                     += GLOBUS_LOCATION=/opt/globus-4.2.1
        env                     += LD_LIBRARY_PATH=/opt/globus-4.2.1/lib
        env                     += GLOBUS_TCP_PORT_RANGE=20000,25000
        server                  = /opt/globus-4.2.1/sbin/globus-gridftp-server
        server_args             = -i
        log_on_success          += DURATION
        disable                 = no
        per_source              = 500
}

Перезапустить xinetd.

WS-Services

Контейнер

Сделать скрипт /etc/init.d/globus-ws следующего содержания:

#!/bin/bash
#
# Globus WS Container service
#
# chkconfig: - 99 1
# description: Globus WS Container
# processname: java
# pidfile: /var/run/globus-ws.pid

. /etc/rc.d/init.d/functions
. /etc/profile.d/globus.sh

container_cmd=$GLOBUS_LOCATION/etc/init.d/globus-ws-java-container
orig_pidfile=$GLOBUS_LOCATION/var/container.pid
pidfile=/var/run/globus-ws.pid
lockfile=/var/lock/subsys/globus-ws

start() {
  echo -n $"Starting globus-ws: "
  daemon --user $GLOBUS_USER --pidfile $orig_pidfile "$container_cmd start > /dev/null"
  RETVAL=$?
  [ $RETVAL -eq 0 ] && cp -f $orig_pidfile $pidfile
  [ $RETVAL -eq 0 ] && touch $lockfile
  echo
  return $RETVAL
} 

stop() {
  echo -n $"Shutting down globus-ws: "
  runuser -s /bin/bash - $GLOBUS_USER -c "$container_cmd stop > /dev/null"
  RETVAL=$?
  [ $RETVAL -eq 0 ] && success
  [ $RETVAL -eq 0 ] && rm -f $pidfile
  [ $RETVAL -eq 0 ] && rm -f $lockfile
  echo
  return $RETVAL
}

rhstatus() {
  status -p $pidfile java
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  status)
    rhstatus
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart|status}"
    exit 2
esac

exit $?
chmod 755 /etc/init.d/globus-ws
chkconfig --add globus-ws
chkconfig --level 345 globus-ws on

Проверка работоспособности

Что-то вроде:

[shamardin@tb01 ~]$ globus-check-remote-environment -s https://tb01.ngrid.ru:8443/

### Remote Endpoint Version Information ###
Axis Version on remote endpoint https://tb01.ngrid.ru:8443/:
Apache Axis version: 1.4
Built on Mar 01, 2007 (10:42:15 CST)

Java WS Core Version on remote endpoint https://tb01.ngrid.ru:8443/:
4.2.1

WS-GRAM

visudo, добавить что-то вроде:

Runas_Alias GLOBUSUSERS = ALL, !root;
globus ALL=(GLOBUSUSERS) NOPASSWD: /opt/globus-4.2.1/libexec/globus-gridmap-and-execute -g /etc/grid-security/grid-mapfile /opt/globus-4.2.1/libexec/globus-job-manager-script.pl *
globus  ALL=(GLOBUSUSERS) NOPASSWD: /opt/globus-4.2.1/libexec/globus-gridmap-and-execute -g /etc/grid-security/grid-mapfile /opt/globus-4.2.1/libexec/globus-gram-local-proxy-tool *

Проверка работоспособности:

[shamardin@tb01 ~]$ globusrun-ws -submit -factory-type Fork -s -c /usr/bin/whoami
Delegating user credentials...Done.
Submitting job...Done.
Job ID: uuid:26aa21e2-3e34-11df-96c4-00163e2aaba7
Termination time: 04/02/3010 08:45 GMT
Current job state: Active
Current job state: CleanUp-Hold
testnnn
Current job state: CleanUp
Current job state: Done
Destroying job...Done.
Cleaning up any delegated credentials...Done.

WS-MDS

Настройка WS-MDS в текущей инкарнации процесс сложный и нестабильный. Говоря далее "инструкция", подразумеваем TestbedCISHowTo.

Выполнить пункт 2.1, 2.2 инструкции.

cd
svn co https://svn.ngrid.ru/infosys/trunk/lis/ infosys
rm -rf ~/.subversion/
mkdir -p $GLOBUS_LOCATION/etc/nng-site
cp infosys/site-info/site-info-example.xml $GLOBUS_LOCATION/etc/nng-site/site-info.xml
chown -R globus:globus $GLOBUS_LOCATION/etc/nng-site
vim $GLOBUS_LOCATION/etc/nng-site/site-info.xml
install -o globus -g globus infosys/site-info/cat-site-info.sh $GLOBUS_LOCATION/libexec/aggrexec/
install -o globus -g globus infosys/gridftp-check/gridftp-check.pl $GLOBUS_LOCATION/libexec/aggrexec/
install -o globus -g globus infosys/gridftp-check/gridftp-check-example.cfg $GLOBUS_LOCATION/etc/nng-site/gridftp-check.cfg
vim $GLOBUS_LOCATION/etc/nng-site/gridftp-check.cfg
vim $GLOBUS_LOCATION/etc/globus_wsrf_mds_index/jndi-config.xml

См. что делать в пункте 3.4 инструкии.

install -o globus -g globus infosys/example/system-registration-example.xml $GLOBUS_LOCATION/etc/globus_wsrf_mds_index/default_providers/system-registration.xml
vim $GLOBUS_LOCATION/etc/globus_wsrf_mds_index/default_providers/system-registration.xml

Обратить внимание, что хост нужно поменять в двух местах, путь к глобусу в одном.

install -o globus -g globus infosys/scripts/mds-servicegroup-add $GLOBUS_LOCATION/bin/mds-servicegroup-add
install -m 755 infosys/scripts/globus-servicegroup-add /etc/init.d
chkconfig --add globus-servicegroup-add
chkconfig --level 345 globus-servicegroup-add on
vim /etc/init.d/globus-servicegroup-add

Выкинуть строчки GLOBUS_LOCATION=, GLOBUS_USER=, заменить на . /etc/profile.d/globus.sh, заменить COMMAND="su - $GLOBUS_USER -c " на COMMAND="runuser -s /bin/bash - $GLOBUS_USER -c "

Проверка работоспособности WS-MDS

pywsrf-query -z none -a -s https://tb01.ngrid.ru:8443/wsrf/services/DefaultIndexService|xmllint --format -|less

Должны наблюдаться <ng:Site>, а так же <ns1:ComputingElement>.