Globus 4.0.1安装指南
作者:施宇光
本文首发在cublog,转载请注名原贴地址如下:http://blog.chinaunix.net/u/21765/showart.php?id=170690
安装JDK
假如jdk安装文件j2sdk-1_4_2_11-linux-i586-rpm.bin放在/usr/i_files/下
root# /usr/i_files/j2sdk-1_4_2_11-linux-i586-rpm.bin
|
出现jdk安装协议,看完后键入 y 同意。注:空格键翻页
root# rpm -ivh j2sdk-1_4_2_11-linux-i586.rpm
|
程序解包安装,成功。默认安装路径为/usr/java/j2sdk1.4.2_11
设置环境变量,打开~/.bash_profile文件,可以用gedit打开
root# gedit ~/.bash_profile
|
在文件中加入
export JAVA_HOME=/usr/java/j2sdk1.4.2_11
export CLASSPATH=/usr/java/j2sdk1.4.2_11/lib/dt.jar:/usr/java/j2sdk1.4.2_11/jre/lib/rt.jar:.
|
如果你使用的是Fedora Core系统,那么你还需要做如下设置,以便使系统默认使用我们刚刚安装的jdk。
root# /usr/sbin/alternatives --install /usr/bin/java java /usr/java/j2sdk1.4.2_11/bin/java 2
root# /usr/sbin/alternatives --config java
共有 2 个程序提供“java”。
选择 命令
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java
2 /usr/java/j2sdk1.4.2_11/bin/java
按 Enter 来保存当前选择[+],或键入选择号码:2
|
—————————————————————————————————————
root# /usr/sbin/alternatives --install /usr/bin/javac javac /usr/java/j2sdk1.4.2_11/bin/javac 2
root# /usr/sbin/alternatives --config javac
共有 2 个程序提供“javac”。
选择 命令
-----------------------------------------------
*+ 1 /usr/lib/jvm/java-1.4.2-gcj/bin/javac
2 /usr/java/j2sdk1.4.2_11/bin/javac
按 Enter 来保存当前选择[+],或键入选择号码:2
|
这里都选择2,即我们自己刚刚安装的jdk路径。
测试jdk是否安装成功,打开终端
root# java
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-client to select the "client" VM
-server to select the "server" VM
........................................
..........................
...............
|
出现以上信息表示java可用
root# javac
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
........................................
..........................
...............
|
安装ANT
到http://jakarta.apache.org下载ant压缩文件apache-ant-1.6.0-bin.tar.gz,这里使用的版本是1.6.0
解压后,将所有文件复制到 /usr/local/ant下
然后设置环境变量
root# gedit ~/.bash_profile
|
在文件中加入
export ANT_HOME=/usr/local/ant
|
在终端运行
root# ant
Buildfile: build.xml does not exist!
Build failed
|
安装PostgreSQL
注:按照本文使用命令时注意用户身份,root#表示根用户
创建安装文件放置路径
创建用户并授权给安装文件路径
root# mkdir /usr/post_install
root# adduser postgres
root# chown postgres:postgres /usr/post_install
|
下载程序源代码文件到存放路径
下载地址为ftp://ftp.postgresql.org/pub/source
本文使用的文件为postgresql-8.1.3.tar.bz2
解压软件
root# su postgres
postgres$ tar -jxvf /usr/post_install/postgresql-8.1.3.tar.bz2
|
进入源代码目录
postgres$ cd /usr/pos_install/postgresql-8.1.3
|
配置编译选项
postgres$ mkdir /usr/local/pgsql
root# chown postgres:postgres /usr/local/pgsql
postgres$ ./configure --prefix=/usr/local/pgsql
|
其中/usr/local/pgsql使我们指定的将要安装的目录
编译
成功后显示
All of PostgreSQL successfully made. Ready to install.
|
安装
成功后显示
PostgreSQL installation complete.
|
创建数据库存储目录
root# mkdir -p /etc/database/pgsql_data/
root# chown postgres:postgres /etc/database/pgsql_data/
|
初始化数据库
postgres$ /usr/local/pgsql/bin/initdb -D /etc/database/pgsql_data/
|
成功后显示如下
Success. You can now start the database server using:
/usr/local/pgsql/bin/postmaster -D /etc/database/pgsql_data
or
/usr/local/pgsql/bin/pg_ctl -D /etc/database/pgsql_data -l logfile start
|
设置共享库
root# /sbin/ldconfig /usr/local/pgsql/lib
|
设置环境变量
root# gedit ~/.bash_profile
|
启动数据库服务
postgres$ /usr/local/pgsql/bin/pg_ctl -D /etc/database/pgsql_data -l logfile start
|
成功后显示
postmaster starting
You have mail in /var/spool/mail/root
|
创建测试库
postgres$ /usr/local/pgsql/bin/createdb test
|
成功后显示
试用测试库
postgres$ /usr/local/pgsql/bin/psql test
|
成功后显示
Welcome to psql 8.1.3, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
test=#
|
启动脚本,以便系统启动时自动加载PostgreSQL服务
将源码文件夹下的linux文件拷贝到init.d下
root# cp /usr/post_install/postgresql-8.1.3/contrib/start-scripts/linux /etc/init.d/postgresql
|
编辑此文件
root# gedit /etc/init.d/postgresql
|
更改参数为自己安装时设定的目录
# Installation prefix
prefix=/usr/local/pgsql 注:安装目录
# Data directory
PGDATA="/etc/database/pgsql_data" 注:数据库目录
|
如果需要通过远程网络访问数据库,同时修改start,restart如下
start)
$ECHO_N "Starting PostgreSQL: "$ECHO_C
su - $PGUSER -c "$DAEMON -i -D '$PGDATA' &" >>$PGLOG 2>&1
echo "ok"
;;
-----------------------------
restart)
echo -n "Restarting PostgreSQL: "
su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w"
su - $PGUSER -c "$DAEMON -i -D '$PGDATA' &" >>$PGLOG 2>&1
echo "ok"
;;
|
最后修改权限
root# chmod a+x /etc/init.d/postgresql
root# chkconfig --add postgresql
|
安装zlib库
下载zlib-1.2.3.tar.gz后,解压缩到目录
编译准备
root# ./configure --prefix=/usr --shared
|
编译
测试共享库
成功后显示
安装共享库
编译并安装静态库
root# make clean
root# ./configure --prefix=/usr
root# make
root# make check
root# make install
|
修改静态库权限
root# chmod 644 /usr/lib/libz.a
|
我们可以将库转移到通常的/lib目录下
root# mv /usr/lib/libz.so.* /lib
root# ln -sf ../../lib/libz.so.1 /usr/lib/libz.so
|
安装lam-mpi
从http://www.lam-mpi.org下载文件,本文使用lam-7.1.2-1.i586.rpm
root# rpm -ivh lam-7.1.2-1.i586.rpm
root# lamboot
|
显示提示信息即表示安装成功
安装GT4.0.1
用root用户创建 globus 用户,并创建安装目录,将权限付给globus
root# mkdir /usr/local/globus-4.0.1
root# chown globus:globus /usr/local/globus-4.0.1
|
下载GT4.0.1原文件包,用 globus 用户解压并进行配置。
注:安装用原文件应该用globus用户解压到一个权限归globus用户所有的文件夹,否则下边的命令将出现权限错误
进入解压目录后,进行编译设置
globus$ export GLOBUS_LOCATION=/usr/local/globus-4.0.1
globus$ ./configure --prefix=$GLOBUS_LOCATION
|
注:为了方便执行,可以将export GLOBUS_LOCATION=/usr/local/globus-4.0.1加入到/etc/profile和~/.bash_profile里
无错误出现后即可进行编译
globus# make 2>&1 | tee build.log
|
也可以不加参数,直接make,不同在于上边参数可以生成编译日志文件build.log,如果编译失败可疑分析原因。
接下来就是漫长的编译过程。
编译成功后即可进行安装
无错误提示即表示安装完成。下边我们进行GT4的配置
----------------------------------------------
配置GT4
作为globus登录,设置GLOBUS_LOCATION指向GT4的安装路径
globus$ export GLOBUS_LOCATION=/usr/local/globus-4.0.1
globus$ . GLOBUS_LOCATION/etc/globus-user-env.sh
|
注:在“.”的后边有一个空格。
申请主机证书
为了运行GT4,必须为主机分配证书。其中:
证书必须包含两个文件:hostcert.pem和hostkey.pem
这两个文件必须必须在正确的路径下 /etc/grid-security/
主机在DNS上必须有一个固定的域名,不可以运行在DHCP服务的服务器上。
为此,可以选择:
从一个以及存在的CA处申请一个证书。
安装SimpleCA,并使之为我们分配证书。
使用globus提供的low-trust证书。
这里,我们选择一个比较容易实现的方法,就是安装SimpleCA。在下面一节里面我们将介绍如何安装和配置SimpleCA。
如果是在第一台机器上安装也应该安装SimpleCA,以便以后为其他多台机器提供服务。
安装和配置SimpleCA
1.创建用户
保证系统中存在这样的用户:
l 普通的用户账号,用来执行客户端的程序。
l 一个globus账号,用来执行管理的任务。如启动、停止容器,部署服务等。同时,这个用户还负责管理SimpleCA。为此,需要保证该用户对$GLOBUS_LOCATION目录有读写权限。在第1章中我们以及创建了这样一个用户。
注:如果编译安装的时候没有正确的设定权限,可以用chown命令来修改
root# chown globus:globus -R /usr/local/globus-4.0.1
|
注:参数-R表示递归的将目录下所有的子目录及文件同时更改权限
2.运行安装脚本
对每个网格,只需运行一次下面的脚本即可。
globus$ export GLOBUS_LOCATION=/usr/local/globus-4.0.1
globus$ GLOBUS_LOCATION/setup/globus/setup-simple-ca
|
在此过程中,程序会提醒你关于你想创建的CA的信息,如:
C e r t i f i c a t e A u t h o r i t y S e t u p
This script will setup a Certificate Authority for signing Globus
users certificates. It will also generate a simple CA package
that can be distributed to the users of the CA.
The CA information about the certificates it distributes will
be kept in:
/home/globus/.globus/simpleCA/
/usr/local/globus-4.0.1/setup/globus/setup-simple-ca: line 250: test: res: integer expression expected
The unique subject name for this CA is:
cn=Globus Simple CA, ou=simpleCA-syg.localdomain, ou=GlobusTest, o=Grid
Do you want to keep this as the CA subject (y/n) [y]:
|
推荐默认选项,按y继续。接下来,会提示你输入用来发送证书的email地址:
Enter the email of the CA (this is the email where certificate requests will be sent to be signed by the CA):
|
其实会在本地产生认证文件,也可以任意输入email地址
这时,系统提示你输入证书过期的时间。默认是5年,接受即可。
The CA certificate has an expiration date. Keep in mind that once the CA certificate has expired, all the certificates signed by that CA become invalid. A CA should regenerate the CA certificate and start re-issuing ca-setup packages before the actual CA certificate expires. This can be done by re-running this setup script. Enter the number of DAYS the CA certificate should last before it expires.
[default: 5 years (1825 days)]:
|
紧接着,系统提示输入生成密钥的短语,即密码。正确输入并牢记,不得包含空格。
Generating a 1024 bit RSA private key
........++++++
................++++++
writing new private key to '/home/globus/.globus/simpleCA//private/cakey.pem'
Enter PEM pass phrase:
|
最后,你会看见下面的提示:
A self-signed certificate has been generated for the Certificate Authority with the subject: /O=Grid/OU=GlobusTest/OU=simpleCA-mayed.mcs.anl.gov/CN=Globus Simple CA
If this is invalid, rerun this script
setup/globus/setup-simple-ca
and enter the appropriate fields.
------------------------------------------------------------------
The private key of the CA is stored in /home/globus/.globus/simpleCA//private/cakey.pem
The public CA certificate is stored in /home/globus/.globus/simpleCA//cacert.pem
The distribution package built for this CA is stored in
/home/globus/.globus/simpleCA//globus_simple_ca_82c6af8a_setup-0.17.tar.gz
|
这里显示的信息对于以后在其它机器上进行安装你的网格是十分重要的。在最后一行的数字82c6af8a是你的CA hash,它是一个8位的十六进制的字符串。安装继续进行,直到你看到类似下面的内容,证明安装以及结束。
******************************************************************
Note: To complete setup of the GSI software you need to run the following script as root to configure your security configuration directory:
/opt/gt4/setup/globus_simple_ca_68ea3306_setup/setup-gsi
For further information on using the setup-gsi script, use the -help option. The -default option sets this security configuration to be the default, and -nonroot can be used on systems where root access is not available.
******************************************************************
setup-ssl-utils: Complete
|
如果出现问题,可以尝试以下命令
root# GPT_LOCATION=/usr/local/globus-4.0.1
root# /usr/local/globus-4.0.1//sbin/gpt-build -force /home/globus/.globus/simpleCA//globus_simple_ca_82c6af8a_setup-0.18.tar.gz
root# $GLOBUS_LOCATION/sbin/gpt-postinstall
root# $GLOBUS_LOCATION/sbin/gpt-build /home/globus/.globus/simpleCA//globus_simple_ca_82c6af8a_setup-0.18.tar.gz
|
3.安装GSI
以root用户登录,运行:
root# $GLOBUS_LOCATION/setup/globus_simple_ca_CA_Hash_setup/setup-gsi -default
|
其中,Hash表示你的CA Hash,应该用82c6af8a代替。这里每次安装时获得的CA Hash是不一样的,应该注意。
setup-gsi: Configuring GSI security
Making /etc/grid-security...
mkdir /etc/grid-security
Making trusted certs directory: /etc/grid-security/certificates/
mkdir /etc/grid-security/certificates/
Installing /etc/grid-security/certificates//grid-security.conf.82c6af8a...
Running grid-security-config...
Installing Globus CA certificate into trusted CA certificate directory...
Installing Globus CA signing policy into trusted CA certificate directory...
setup-gsi: Complete
|
显示如上即表示GSI安装正确。
-----------------------------------------------------
证书的申请和发放
host证书
1.申请一个host证书
这个证书应该是给服务器申请的,这样才可以向用户发放证书。首先,使用root用户登录,运行命令:
root# grid-cert-request –host ‘hostname’
|
这里的hostname是服务器的主机名,比如“mci.uestc.edu.cn”。该命令会在服务器上创建3个文件,分别是:
l /etc/grid-security/hostkey.pem
l /etc/grid-security/hostcert_request.pem
l /etc/grid-security/hsotcert.pem(这是一个空的文件)
之后,会通过邮件的方式将hostcert_request.pem发送给CA的管理员,即globus用户。如果hostname写本机地址,则在本机的/etc/grid-security下寻找到三个文件,自行拷贝出来,进行下边的签名步骤
2.对host证书签名
作为globus用户登录,并运行如下命令:
globus$ grid-ca-sign –in hostcert_request.pem –out hostsigned.pem
|
这个命令是对接受到的host证书进行签名,从而生成hostsigned.pem文件。在此过程中,系统提示globus用户输入最初安装SimpleCA时输入的短语。
3.获得签名证书
作为root用户登录,将刚才生成的hostsinged.pem文件移到/etc/grid-security/目录下并改名为hostcert.pem,从而覆盖原先的空文件。这时,该文件的所有者是root,同时对其它用户是只读的权限。
用户证书
1.申请证书
首先,用一个普通用户登录。然后在命令行输入如下命令:
在此过程中,会提示你输入passphrase。这个是用来生成密钥的短语,要牢记。否则只能重新申请证书。
最后,系统中会生成如下三个文件:
· ~$USER/.globus/usercert.pem (empty)
· ~$USER/.globus/userkey.pem
· ~$USER/.globus/usercert_request.pem
其中usercert.pem是空文件,需要另外获得。此时,会用email方式将usercert_request.pem给SimpleCA的管理员。同样,如果host配置时使用本机地址,则在本地的~$USER/.globus/下即可找到文件,拷贝出来签名。
2.对申请的证书进行签名
SimpleCA的管理员账号globus登录,并运行如下命令
globus$ grid-ca-sign -in usercert_request.pem -out signed.pem
|
对通过email收到的usercert_request.pem进行签名。这时,系统会提示globus用户输入在安装SimpleCA过程中输入的passphrase。正确输入后就会根据usercert_request.pem生成一个signed.pem文件,并通过email将其发送给申请证书的用户。
3.获得签名证书
用普通用户登录,并接收来自email的经过签名的signed.pem文件,将其拷贝到~$USRE/.globus/目录下,并改名为usercert.pem。从而覆盖原先生成的空文件。
测试
为了对安装在/etc/grid-security/certificates的证书进行校验,需要运行如下命令:
user$ grid-proxy-init –debug –verify
|
如果一切正确,输出的结果类似下面的内容:
user$ grid-proxy-init -debug -verify
User Cert File: /home/user/.globus/usercert.pem
User Key File: /home/user/.globus/userkey.pem
Trusted CA Cert Dir: /etc/grid-security/certificates
Output File: /tmp/x509up_u1817
Your identity: /O=Grid/OU=GlobusTest/OU=simpleCA-mayed.mcs.anl.gov/OU=mcs.anl.gov/CN=User Name
Enter GRID pass phrase for this identity:
Creating proxy ..............................++++++++++++
...............++++++++++++
Done
Proxy Verify OK
Your proxy is valid until: Sat Mar 20 03:01:46 2006
|
使容器可以访问证书
通过上述方法获得证书的host key文件(/etc/grid-security/hostkey.pem)对于root用户使只读的。而此时容器会以非root用户身份运行(可能使globus用户)。为了让容器也可以访问证书,必须使用root账号登录并做如下改动:
root# cd /etc/grid-security
root# cp hostkey.pem containerkey.pem
root# cp hostcert.pem containercert.pem
root# chown globus.globus containerkey.pem containercert.pem
|
执行结束后,/etc/grid-security目录看起来像下面这样:
root# ls -l *.pem
-rw-r--r-- 1 globus globus 1785 Oct 14 14:47 containercert.pem
-r-------- 1 globus globus 887 Oct 14 14:47 containerkey.pem
-rw-r--r-- 1 root root 1785 Oct 14 14:42 hostcert.pem
-r-------- 1 root root 887 Sep 29 09:59 hostkey.pem
|
添加授权
为用户添加授权,使之可以访问服务。首先,需要作为root用户登录,创建/etc/grid-security/grid-mapfile文件。这时,你需要两部分信息:
l 用户的主体名(subject name)
l 这个主体名应该映射到的账号(account name)
这个文件的语法是每个用户使用一行来表示,前面是用户的主体名,后面跟着用户的账号。
为了得到这两部分信息,可以使用grid-cert-info命令得到用户的主体名,并用whoami命令得到用户的账号。例如:
user$ grid-cert-info -subject
/O=Grid/OU=GlobusTest/OU=simpleCA-hostname/OU=mcs.anl.gov/CN=user
user$ whoami
user
|
可以使用grid-mapfile-add-entry命令向grid-mapfile文件中添加用户。例如:
root# $GLOBUS_LOCATION/sbin/grid-mapfile-add-entry -dn "/O=Grid/OU=GlobusTest/OU=simpleCA-mayed.mcs.anl.gov/OU=hostname/CN=user" -ln user
|
结果grid-mapfile看起来应该像这样:
"/O=Grid/OU=GlobusTest/OU=simpleCA-hostname/OU=hostname/CN=user" user
注:主体名两侧的双引号是必须的,因为这样可以忽略其中包含的空格。其中hostname即申请host证书时的服务器名。user是普通用户名。
基本安装结束。