如果新娘不是我的说说:Globus安装手册(1)
来源:百度文库 编辑:中财网 时间:2024/04/29 00:09:34
Globus安装手册(1)
(2007-08-03 21:59:37) 整个安装过程比较烦琐,出现了不少错误,而且globus的安装手册也有很多问题。很多错误是由于用户对文件的权限引起的,碰到no such file or directory错误时,一般以root用户执行:chown globus:globus 文件目录,chown –R globus 文件目录(其中globus是用户名),通常都能解决问题。参考资料:http://www.globus.org/toolkit/docs/4.0/admin/docbook/index.html
第一台机器的安装(机器名称:sonky;IP:10.10.33.19)
一、
Globus支持redhat enterprise 3&4,fedora 3&4,suse,debian,MACOS,windows等。为方便与cluster连接,选择redhat enterprise linux AS4。安装系统的时候需要选择安装postgresql(也可以以后手工安装,不过让系统自己安装省点事)。
二、
1.
安装Globus需要设置几个用户:root, globus, stugrid
其中,globus作为globus的安装用户;stugrid作为container的用户和测试用户
2.
3.
4.
三、
1.
首先修改文件的属性
[root@sonky]# chmod +x jdk-6u2-linux-i586-rpm.bin
[root@sonky]# cp jdk-6u2-linux-i586-rpm.bin
[root@sonky]# cd /usr/local
[root@sonky]# ./jdk-6u2-linux-i586-rpm.bin
会出现协议书类的一直回车直到显示
Do you agree to the above license terms? [yes or no]
输入y,会自动安装在/usr/java/jdk1.6.0_02目录下
2.
[root@sonky]# cp apache-ant-1.7.0-bin.tar.gz
[root@sonky]# cd /usr/local
[root@sonky]# tar zxpvf apache-ant-1.7.0-bin.tar.gz
[root@sonky]# ln -s apache-ant-1.7.0 ant
3.
[root@sonky]# vi /etc/profile
在最后添加下面的内容:
export ANT_HOME=/usr/local/apache-ant-1.7.0
export JAVA_HOME=/usr/java/jdk.1.6.0_02
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
输入:wq保存退出
4.
[root@sonky]# mkdir /usr/local/globus-4.0.5
更改改目录主属性
[root@sonky]# chown globus:globus usr/local/globus-4.0.5
拷贝gt4.0.5-all-source-installer.tar.gz到globus-4.0.5目录中
[root@sonky]# tar xzvf gt4.0.5-all-source-installer.tar.gz
切换到globus用户
[root@sonky]# su – globus
设置环境变量
[globus@sonky]$ export GLOBUS_LOCATION=/usr/local/globus-4.0.5
[globus@sonky]$ cd gt4.0.5-all-source-installer
编译预设值,将globus安装到/usr/local/globus-4.0.5中
[globus@sonky]$ ./configure --prefix=$GLOBUS_LOCATION
注:configure 过程中出过些问题
./configure: conf2139.file: No such file or directory
看了一下configure,应该是生成文件出错,由于过程中,解压的文件,cp的文件,安装的文件的权限都有些不同,为了省事,干脆将所用目录下的文件都赋予文件主权限
chown -R globus 文件目录,这样之后,好多因为权限出现的问题基本不见了
执行编译命令
[globus@sonky]$ make
注:如果这一步出现问题,注意看一下是否是相关文件的权限问题,可以考虑 chmod u+x操作,make出问题后,如果再次执行时出现
那么make clean 一下,再执行make
进行安装
[globus@sonky]$ make install
5.
[globus@sonky]$ source $GLOBUS_LOCATION/etc/globus-user-env.sh
[globus@sonky]$ $GLOBUS_LOCATION/setup/globus/setup-simple-ca
安装过程会出现:
Verifying - Enter PEM pass phrase: 再次输入想设定的密码
系统已经在 .globus 目录保存了已经创建好的simpleCA。现在我需要让我的机器对新的CA进去确认操作。以下操作将以root用户身份进行
[root@sonky]# export GLOBUS_LOCATION=/usr/local/globus-4.0.5
[root@sonky]# $GLOBUS_LOCATION/setup/globus_simple_ca_91177e045_setup/setup-gsi –default
生成的文件都是Globus Toolkit建立simpleCA信任的配置文件。
现在我们已经创建一个CA并完成了认证,我们下面将获得到这台机器的hostcert:
[root@sonky]# source $GLOBUS_LOCATION/etc/globus-user-env.sh
[root@sonky]# grid-cert-request -host sonky.stu
注:sonky.stu为主机名
下面需要用globus用户自己的simpleCA来进行签证:
[globus@sonky]$ grid-ca-sign
复制这个认证过的证书hostsigned.pem到/etc目录下:
[root@sonky]# cp hostsigned.pem /etc/grid-security/hostcert.pem
hostcert和hostkey为root用户所有,它们将被GridFTP服务器使用。因为Web服务容器(webservices container)被非root用户运行,所以我们需要一个为globus用户拥有的证书。即需要一个root用户拥有的host certificate/key和一个globus用户拥有的host certificate/key。以上可以通过简单的文件拷贝实现以上需求:
[root@sonky grid-security]# cp hostcert.pem containercert.pem
[root@sonky grid-security]# cp hostkey.pem containerkey.pem
[root@sonky grid-security]# chown globus:globus container*.pem
查看一下结果:
[root@sonky grid-security]# ls -l *.pem
-rw-r--r--
-r--------
-rw-r--r--
-rw-r--r--
-r--------
接着为stugrid用户创建usercert:
[stugrid@sonky]$ export GLOBUS_LOCATION=/usr/local/globus-4.0.5
[stugrid@sonky]$ source $GLOBUS_LOCATION/etc/globus-user-env.sh
[stugrid@sonky]$ grid-cert-request
现在需要向globus用户提出证书请求,以求能够被认证,然后将认证过的证书发送给stugrid(本机只要拷贝操作)
[globus@sonky]$ grid-ca-sign -in /home/stugrid/.globus/usercert_request.pem –out signed.pem
[root@sonky]# chown stugrid:stugrid signed.pem
[stugrid@sonky]$ cp signed.pem /home/stugrid/.globus/usercert.pem
[stugrid@sonky]$ ls -l ~/.globus/
-rw-r--r--
-rw-r--r--
-rw-------
最后再以root用户创建一个grid-mapfile,方便以后授权服务:
[root@sonky]#
内容为:
"/O=Grid/OU=GlobusTest/OU=simpleCA-sonky.stu/OU=stu/CN=stugrid"stugrid
6.
创建文件
[root@sonky]# vim /etc/xinetd.d/gridftp
内容为:
service gsiftp
{
instances
socket_type
wait
user
env
env
server
server_args
log_on_success
nice
disable
}
修改文件:
[root@sonky]# vim /etc/services
vboxd
binkp
asp
asp
dircproxy
tfido
fido
# Local services
gsiftp
[root@sonky]# /etc/init.d/xinetd reload
[root@sonky]# netstat -an | grep 2811
tcp
现在gridftp服务器已经在等待请求了,于是我们启动一个客户端并且发送一个文件:
[stugrid@sonky]$ grid-proxy-init -verify –debug
[stugrid@sonky]$ globus-url-copy gsiftp://sonky.stu/etc/group file:///tmp/stugrid.test.copy
[stugrid@sonky]$ diff /tmp/jeffery.test.copy /etc/group
如果没有内容表示传输正确
7.
建立container启动文件,方便以后调试操作
[globus@sonky]$ vim $GLOBUS_LOCATION/start-stop
内容:
#! /bin/sh
set -e
export GLOBUS_LOCATION=/usr/local/globus-4.0.5
export JAVA_HOME=/usr/java/jdk1.6.0_02/
export ANT_HOME=/usr/local/apache-ant-1.7.0
export GLOBUS_OPTIONS="-Xms256M -Xmx512M"
. $GLOBUS_LOCATION/etc/globus-user-env.sh
cd $GLOBUS_LOCATION
case "$1" in
esac
exit 0
[globus@sonky]$ chmod +x $GLOBUS_LOCATION/start-stop
现在以root用户创建一个/etc/init.d脚本去调用globus用户的start-stop脚本:
[root@sonky]# vim /etc/init.d/globus-4.0.5
内容:
#! /bin/sh -e
case "$1" in
esac
exit 0
[root@sonky]# chmod +x /etc/init.d/globus-4.0.5
[root@sonky]# /etc/init.d/globus-4.0.5 start
注:如果提示有ip错误,编辑$GLOBUS_LOCATION/etc/globus_wsrf_core/server-config.wsdd和client-server-config.wsdd,添加一行
下面可以通过一个简单的clients/services来与容器进行交互操作
[stugrid@sonky]$ counter-client –s https://sonky.stu:8443/wsrf/services/CounterService
Got notification with value: 3
Counter has value: 3
Got notification with value: 13
表示与容器通讯成功
8.
修改postgresql的设置,使它可以接受tcp/ip连接。(忽略globus原手册上的操作,上面的操作有错误)
[root@sonky]# vim /etc/init.d/postgresql
将第181行的
$SU -l postgres -c "$PGENGINE/postmaster -p ${PGPORT} -D '${PGDATA}' ${PGOPTS} &" >> $PGLOG 2>&1
改为:
$SU -l postgres -c "$PGENGINE/postmaster -i -p ${PGPORT} -D '${PGDATA}' ${PGOPTS} &" >> $PGLOG 2>&1
[root@sonky]# vim /var/lib/pgsql/data/postgresql.conf
删除第30行“#tcpip_socket = true”中的#
[root@sonky]# vim /var/lib/pgsql/data/pg_hba.conf
在最后加上:
host rftDatabase "globus"
[root@sonky]# /etc/init.d/postgresql restart
[root@sonky]# su postgres -c "createuser -P globus"
[globus@sonky]$ createdb rftDatabase
[globus@sonky]$ psql -d rftDatabase -f $GLOBUS_LOCATION/share/globus_wsrf_rft/rft_schema.sql
[globus@sonky]$ vim $GLOBUS_LOCATION/etc/globus_wsrf_rft/jndi-config.xml
将中的
测试RFT是否正常工作:
[stugrid@sonky]$ cp /usr/local/globus-4.0.5/share/globus_wsrf_rft_test/transfer.xfr /tmp/rft.xfr
[stugrid@sonky]$ rft -h sonky.stu -f /tmp/rft.xfr
如果最后出现“All Transfers are completed”表示传输成功,否则需要检查错误。在这个过程可能会出现连接不上容器的问题,可能需要重新设置pg_hba.conf,或者根据出错信息查看前面的步骤是否正确。
9.
首先修改/etc/bin/sudo
[root@sonky]# visudo
在最后加上:
globus ALL=(stugrid) NOPASSWD: /usr/local/globus-4.0.5/libexec/globus-gridmap-and-execute -g /etc/grid-security/grid-mapfile /usr/local/globus-4.0.5/libexec/globus-job-manager-script.pl *
globus ALL=(stugrid) NOPASSWD: /usr/local/globus-4.0.5/libexec/globus-gridmap-and-execute -g /etc/grid-security/grid-mapfile /usr/local/globus-4.0.5/libexec/globus-gram-local-proxy-tool *
提交一个任务,测试GRAM
[stugrid@sonky]$ globusrun-ws -submit -c /bin/true
可能出错:
[stugrid@sonky globus-4.0.5]$ globusrun-ws -submit -c /bin/true
Submitting job...Done.
Job ID: uuid:3c0e1126-456f-11dc-ac80-00123f672ef7
Termination time: 08/09/2007 05:21 GMT
Current job state: Failed
Destroying job...Done.
globusrun-ws: Job failed: Error code: 201
Script stderr:
Sorry, /usr/bin/sudo must be setuid root.
解决方法:更改sudo的属性,[root@sonky]# chmod 4111 /usr/bin/sudo