Как мы ставим глобус
Table of Contents
Предварительная подготовка
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>.
