wget http://www.globus.org/ftppub/gt4/4.0/4.0.2/installers/bin/gt4.0.2-x86_rh_9-installer.tar.gz
[root@CGSP45]# adduser globus
[root@CGSP45]# mkdir /usr/local/globus-4.0.1 [root@CGSP45]# chown globus:globus /usr/local/globus-4.0.1
[globus@CGSP45 globus]$ echo $JAVA_HOME /usr/java/j2sdk1.4.2_08 [globus@CGSP45 globus]$ echo $ANT_HOME /usr/apache-ant-1.6.2 [globus@CGSP45 globus]$ echo $GLOBUS_LOCATION /usr/local/globus-4.0.1
[globus@CGSP45 globus]$ tar zxvpf gt4.0.1-x86_rh_9-binary-installer.tar.gz [globus@CGSP45 globus]$ cd gt4.0.1-x86_rh_9-binary-installer [globus@CGSP45 globus]$ ./configure --prefix=$GLOBUS_LOCATION [globus@CGSP45 globus]$ make 2>&1 | tee make.log [globus@CGSP45 globus]$ make install
[globus@CGSP45 globus]$ source /usr/local/globus-4.0.1/etc/globus-devel-env.sh
[globus@CGSP45 globus]$ /usr/local/globus-4.0.1/setup/globus/setup-simple-ca安装结果:
[globus@CGSP45 globus]$ tree ~/.globus/simpleCA /home/globus/.globus/simpleCA |-- cacert.pem |-- certs |-- crl |-- globus_simple_ca_4a498a83_setup-0.18.tar.gz |-- grid-ca-ssl.conf |-- index.txt |-- index.txt.attr |-- newcerts |-- private | `-- cakey.pem `-- serial
[root@CGSP45 root]$ /usr/local/globus-4.0.1/setup/globus_simple_ca_4a498a83_setup/setup-gsi -default
grid-cert-request -host 'CGSP45'如果证书已经存在, 可以用 -force选项 强制覆盖. 生成的结果如下:
/etc/grid-security |-- certificates |-- hostcert.pem |-- hostcert_request.pem |-- hostkey.pem证书的签发: 证书必须经过simpleCA签发才能生效. 将/etc/grid-security/hostcert_request.pem传给simleCA进行签发
[globus@CGSP45 globus]grid-ca-sign -in /etc/grid-security/hostcert_request.pem -out hostsigned.pem上述命令之后, 会在当前目录下生成hostsigned.pem, 同时会在~/.globus/simpleCA/newcert下保存一个备份. 用diff命令可以发现 两个是完全一样的.
[liulk@CGSP45 liulk]$ export GLOBUS_LOCATION=/usr/local/globus-4.0.1/ [liulk@CGSP45 liulk]$ export PATH=$GLOBUS_LOCATION/bin:$PATH [liulk@CGSP45 liulk]$ grid-cert-request生成结果:
.globus/ |-- persisted | `-- 10.0.2.45-5555 | `-- PersistentSubscription | |-- a2733e00-d473-11da-aabe-c4538721e54a.obj | |-- ae684ed0-d473-11da-aabe-c4538721e54a.obj | `-- b58a05a0-d473-11da-aabe-c4538721e54a.obj |-- usercert.pem |-- usercert_request.pem `-- userkey.pem
[globus@CGSP45 globus]$ grid-ca-sign -in usercert_request.pem -out usersigned.pem然后将签发的结果 usersigned.pem 发送给用户liulk. liulk接到签发的证书后, 用签发的证书覆盖掉.globus/usercert.pem即可
[liulk@CGSP45 liulk]$ grid-proxy-init -debug -verify
[globus@CGSP45 globus]$ $GLOBUS_LOCATION/sbin/gpt-build globus_simple_ca_HASH_setup-0.17.tar.gz gcc32dbg [globus@CGSP45 globus]$ $GLOBUS_LOCATION/sbin/gpt-postinstall用root运行
[root@CGSP45 root]$ /usr/local/globus-4.0.1/setup/globus_simple_ca_4a498a83_setup/setup-gsi -default即可.
[root@CGSP45 etc]# cd grid-security [root@CGSP45 grid-security]# cp hostkey.pem containerkey.pem [root@CGSP45 grid-security]# cp hostcert.pem containercert.pem [root@CGSP45 grid-security]# chown globus:globus containerkey.pem containercert.pem [root@CGSP45 grid-security]# ls -l -rw-r--r-- 1 globus globus 2625 4ÔÂ 28 20:29 containercert.pem -rw-r--r-- 1 globus globus 887 4ÔÂ 28 20:28 containerkey.pem -rw-r--r-- 1 root root 2625 4ÔÂ 28 18:16 hostcert.pem -r-------- 1 root root 887 4ÔÂ 28 18:11 hostkey.pem [root@CGSP45 grid-security]#
#取得网格用户的标识 [liulk@CGSP45 liulk]$ grid-cert-info -subject /O=Grid/OU=GlobusTest/OU=simpleCA-cgsp45/CN=liulk #取得主机用户的标识 [liulk@CGSP45 liulk]$ whoami liulk [liulk@CGSP45 liulk]$生成映射文件并增加一个映射:
[root@CGSP45 grid-security]# touch grid-mapfile [root@CGSP45 grid-security]# $GLOBUS_LOCATION/sbin/grid-mapfile-add-entry -dn /O=Grid/OU=GlobusTest/OU=simpleCA-cgsp45/CN=liulk -ln liulk Modifying /etc/grid-security/grid-mapfile ... New entry: "/O=Grid/OU=GlobusTest/OU=simpleCA-cgsp45/CN=liulk" liulk (1) entry added [root@CGSP45 grid-security]# cat grid-mapfile "/O=Grid/OU=GlobusTest/OU=simpleCA-cgsp45/CN=liulk" liulk [root@CGSP45 grid-security]#
[root@CGSP45 root]# vi /etc/ld.so.conf [root@CGSP45 root]# cat /etc/ld.so.conf /usr/kerberos/lib /usr/X11R6/lib /usr/lib/sane /usr/lib/qt-3.1/lib /usr/local/globus-4.0.1/lib #这个是后来加入的. [root@CGSP45 root]# ldconfig -v -v -v启动gridftp-server
[root@CGSP45 root]# globus-gridftp-server -S -p 2811其中:
| 选项 | 意义 |
|---|---|
| -S | 指定后台启动方式 |
| -p 2811 | 启动在端口2811上 |
测试其是否正常工作:
[liulk@CGSP45 liulk]$ globus-url-copy -vb -dbg gsiftp://CGSP45/etc/hosts file:///home/liulk/host22 [liulk@CGSP45 liulk]$ cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost 10.0.2.45 CGSP45 CGSP05 10.0.2.46 CGSP46 CGSP06 10.0.2.47 CGSP47 CGSP07 10.0.2.48 CGSP48 CGSP08 10.0.2.49 CGSP49 CGSP09 10.0.2.50 CGSP50 CGSP10 10.0.2.51 CGSP51 CGSP11 10.0.2.52 CGSP52 CGSP12 [liulk@CGSP45 liulk]$ cat host22 # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost 10.0.2.45 CGSP45 CGSP05 10.0.2.46 CGSP46 CGSP06 10.0.2.47 CGSP47 CGSP07 10.0.2.48 CGSP48 CGSP08 10.0.2.49 CGSP49 CGSP09 10.0.2.50 CGSP50 CGSP10 10.0.2.51 CGSP51 CGSP11 10.0.2.52 CGSP52 CGSP12 [liulk@CGSP45 liulk]$
[globus@CGSP45 globus_wsrf_rft]$ mysql -u root -p -e "create database rftDatabase;" [globus@CGSP45 globus_wsrf_rft]$ mysql -u root -p --database rftDatabase < rft_schema_mysql.sql [globus@CGSP45 globus_wsrf_rft]$ mysql -u root -p -e "GRANT ALL PRIVILEGES ON rftDatabase.* to rftuser@'%' identified by 'rftpass';" [globus@CGSP45 globus_wsrf_rft]$ mysql -u root -p -e "GRANT ALL PRIVILEGES ON rftDatabase.* to rftuser@'localhost' identified by 'rftpass';" [globus@CGSP45 globus_wsrf_rft]$ mysql -u root -p -e "flush privileges;"编辑rft的配置文件: 我们用的是mysql数据库,主要是改jndi-config.xml如下的选项:
<parameter>
<name>
driverName
</name>
<!--<value>
org.postgresql.Driver
</value>
-->
<value>
com.mysql.jdbc.Driver
</value>
</parameter>
<parameter>
<name>
connectionString
</name>
<!--<value>
jdbc:postgresql://cgsp45/rftDatabase
</value>-->
<value>
jdbc:mysql://cgsp45/rftDatabase
</value>
</parameter>
<parameter>
<name>
userName
</name>
<value>
rftuser
</value>
</parameter>
<parameter>
<name>
password
</name>
<value>
rftpass
</value>
</parameter>
[note]:别忘了将mysql的数据库驱动程序放入$GLOBUS_LOCATION/lib目录下:mysql-connector-java-3.0.9-stable-bin.jar.
[root@CGSP45 root]visudo [root@CGSP45 grid-security]# cat /etc/sudoers # sudoers file. # Globus GRAM entries globus ALL=(liulk) NOPASSWD: /usr/local/globus-4.0.1/libexec/globus-gridmap-and-execute -g /etc/grid-security/grid-mapfile /usr/local/globus-4.0.1/libexec/globus-job-manager-script.pl * globus ALL=(liulk) NOPASSWD: /usr/local/globus-4.0.1/libexec/globus-gridmap-and-execute -g /etc/grid-security/grid-mapfile /usr/local/globus-4.0.1/libexec/globus-gram-local-proxy-tool *
<?xml version="1.0" encoding="UTF-8"?> <job> <executable>/bin/echo</executable> <argument>this is an example_string </argument> <argument>Globus was here</argument> <stdout>/tmp/stdout</stdout> <stderr>/tmp/stderr</stderr> </job>
[liulk@CGSP45 liulk]$ grid-proxy-init Your identity: /O=Grid/OU=GlobusTest/OU=simpleCA-cgsp45/CN=liulk Enter GRID pass phrase for this identity: phrase is too short, needs to be at least 4 chars Enter GRID pass phrase for this identity: Creating proxy ........................................... Done Your proxy is valid until: Sat Apr 29 11:21:52 2006 [liulk@CGSP45 liulk]$ grid-proxy-info subject : /O=Grid/OU=GlobusTest/OU=simpleCA-cgsp45/CN=liulk/CN=1046079078 issuer : /O=Grid/OU=GlobusTest/OU=simpleCA-cgsp45/CN=liulk identity : /O=Grid/OU=GlobusTest/OU=simpleCA-cgsp45/CN=liulk type : Proxy draft (pre-RFC) compliant impersonation proxy strength : 512 bits path : /tmp/x509up_u519 timeleft : 11:59:36 [liulk@CGSP45 liulk]$
[liulk@CGSP45 liulk]$ globusrun-ws -submit -F https://10.0.2.45:8443/wsrf/services/ManagedJobFactoryService -f jobtest.xml Submitting job...Done. Job ID: uuid:61499c08-d6cb-11da-9f0c-00132065d6a7 Termination time: 04/29/2006 15:26 GMT Current job state: Active Current job state: CleanUp Current job state: Done Destroying job...Done. [liulk@CGSP45 liulk]$ ls /tmp ... stderr stdout x509up_u519 [liulk@CGSP45 liulk]$
<job> <executable>my_echo</executable> <directory>${GLOBUS_USER_HOME}</directory> <argument>Hello</argument> <argument>World!</argument> <stdout>${GLOBUS_USER_HOME}/stdout</stdout> <stderr>${GLOBUS_USER_HOME}/stderr</stderr> <fileStageIn> <transfer> <sourceUrl>gsiftp://10.0.2.45:6000/bin/echo</sourceUrl> <destinationUrl>gsiftp://10.0.2.45:2811/${GLOBUS_USER_HOME}/my_echo</destinationUrl> </transfer> </fileStageIn> <fileStageOut> <transfer> <sourceUrl>file:///${GLOBUS_USER_HOME}/stdout</sourceUrl> <destinationUrl>gsiftp://10.0.2.45:6000/tmp/stdout1</destinationUrl> </transfer> </fileStageOut> <fileCleanUp> <deletion> <file>file:///${GLOBUS_USER_HOME}/my_echo</file> </deletion> <deletion> <file>file:///${GLOBUS_USER_HOME}/stdout</file> </deletion> <deletion> <file>file:///${GLOBUS_USER_HOME}/stderr</file> </deletion> </fileCleanUp> </job>
[root@CGSP45 root]# globus-gridftp-server -S -p 6000 [root@CGSP45 root]# telnet CGSP45 6000 Trying 10.0.2.45... Connected to CGSP45. Escape character is '^]'. 220 cgsp45 GridFTP Server 2.1 (gcc32, 1122653280-63) ready.
[liulk@CGSP45 liulk]$ globus-credential-delegate -h 10.0.2.45 eprproxy.xml EPR will be written to: eprproxy.xml Delegated credential EPR: Address: https://10.0.2.45:8443/wsrf/services/DelegationService Reference property[0]: <ns1:DelegationKey xmlns:ns1="http://www.globus.org/08/2004/delegationService">f30c6840-d6cc-11da-86ac-9eaae477eb7e</ns1:DelegationKey> [liulk@CGSP45 liulk]$ cat eprproxy.xml <DelegatedEPR xsi:type="ns1:EndpointReferenceType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://schemas.xmlsoap.org/ws/2004/03/addressing"> <ns1:Address xsi:type="ns1:AttributedURI">https://10.0.2.45:8443/wsrf/services/DelegationService</ns1:Address> <ns1:ReferenceProperties xsi:type="ns1:ReferencePropertiesType"> <ns1:DelegationKey xmlns:ns1="http://www.globus.org/08/2004/delegationService">f30c6840-d6cc-11da-86ac-9eaae477eb7e</ns1:DelegationKey> </ns1:ReferenceProperties> <ns1:ReferenceParameters xsi:type="ns1:ReferenceParametersType"/>
[liulk@CGSP45 liulk]$ cat test2.xml
<job>
<executable>my_echo</executable>
<directory>${GLOBUS_USER_HOME}</directory>
<argument>Hello</argument>
<argument>World!</argument>
<stdout>${GLOBUS_USER_HOME}/stdout</stdout>
<stderr>${GLOBUS_USER_HOME}/stderr</stderr>
<fileStageIn>
<transfer>
<sourceUrl>gsiftp://10.0.2.45:6000/bin/echo</sourceUrl>
<destinationUrl>gsiftp://10.0.2.45:2811/${GLOBUS_USER_HOME}/my_echo</destinationUrl>
</transfer>
</fileStageIn>
<fileStageOut>
<transfer>
<sourceUrl>file:///${GLOBUS_USER_HOME}/stdout</sourceUrl>
<destinationUrl>gsiftp://10.0.2.45:6000/tmp/stdout1</destinationUrl>
</transfer>
</fileStageOut>
<fileCleanUp>
<deletion>
<file>file:///${GLOBUS_USER_HOME}/my_echo</file>
</deletion>
<deletion>
<file>file:///${GLOBUS_USER_HOME}/stdout</file>
</deletion>
<deletion>
<file>file:///${GLOBUS_USER_HOME}/stderr</file>
</deletion>
</fileCleanUp>
</job>
[liulk@CGSP45 liulk]$ globusrun-ws -submit -Tf eprproxy.xml -F https://10.0.2.45:8443/wsrf/services/ManagedJobFactoryService -f test2.xml -Sf eprproxy.xml
Submitting job...Done.
Job ID: uuid:80d6794a-d6cd-11da-b507-00132065d6a7
Termination time: 04/29/2006 15:41 GMT
Current job state: StageIn
Current job state: Active
Current job state: StageOut
Current job state: CleanUp
Current job state: Done
Destroying job...Done.
[liulk@CGSP45 liulk]$ ls /tmp
stderr
stdout
stdout1
x509up_u519
[liulk@CGSP45 liulk]$