Life家族
SCMLife
RMLife
PMLife
SQALife
TESTLife
CM方法论
电子杂志
ClearCase
ClearQuest
CVS/SVN
StarTeam
VSS/VSTS
Synergy
构建发布
RM思想
DOORS
RequisitePro
PM思想
PMP认证
Project
质量管理
测试方法论
TD/QC
推荐版块:
IBM 2008年开发者大会免费参加
|
谈书论道
|
文档中文化
注册
登录
会员
标签
有奖问答
论坛设施
统计
帮助
SCM Life
»
IBM Rational ClearCase
» ClearCase Interoperation实例详解
输入您的搜索字词
提交搜索表单
Web
www.SCMLife.com
‹‹ 上一主题:关于CC中工作产品规模的统计
|
下一主题:ClearCase四大功能详述(版本控制) ››
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
[转贴]
ClearCase Interoperation实例详解( 此文章被查看:2802次,被回复:0篇!! )
make
小学二年级
个人空间
发短消息
加为好友
当前离线
楼主
大
中
小
发表于 2006-9-12 17:07
只看该作者
ClearCase Interoperation实例详解
本文力图通过搭建一个实验环境来模拟ClearCase真实
用户
的
开发
环境,使得读者对于在多平台,跨平台的异构环境中有效的运行和使用ClearCase有一个初步的了解。
前言
本文力图通过搭建一个实验环境来模拟ClearCase真实用户的开发环境,使得读者对于在多平台,跨平台的异构环境中有效的运行和使用 ClearCase有一个初步的了解。对于大型的
软件
开发
项目
,由于源
代码
庞大,开发人员众多,为了分散ClearCase运行负载,提高运行效率,一般来说
推荐
将ClearCase架构中的
服务器
,例如Vob Server, View Server,Registry Server分布到各个不同的主机/
服务器
上安装。用户可能希望将Vob Server安装到一个性能较高的Unix/
Linux
的
系统
下,将Registry Server安装到
windows
机器上,而用户通常使用
windows
的ClearCase
客户端
来做开发,这样就涉及到了Windows/Unix (
Linux
)
系统
之间的互操作(interop)问题。本文将通过对实验的描述来一步一步介绍其中涉及到的步骤,问题,注意事项等。
回页首
名词解释
Interoperation: 通过对
Rational
ClearCase的
设置
,使得网络上的
Rational
ClearCase资源可以在unix(linux)和windows机器上都可以
访问
。
介绍
这次的实验有以下四个目的:
1. 实现分布式安装和配置ClearCase架构中的Server,并让他们能够协同工作。在设计的实验中,一共设置了4台机器作为Server,另一台作为客户端。
2. 尝试从windows端访问linux上的Vob资源。
3. 尝试在这种分布式,跨平台架构中使用
UCM
进行开发。
本文将通过以下各个章节来呈现搭建ClearCase分布式环境的步骤:
* ClearCase架构设计
* ClearCase用户环境准备
* 在Linux上安装SAMBA
* ClearCase安装顺序
* ClearCase的安装
* 用户信任交验
* 在Linux机器上面创建Vob
* 从windows端导入Linux的vob tag
* 在windows上面创建和配置Project
* 在windows的Client端使用ClearCase进行开发
* Tips
回页首
ClearCase架构设计
在设计的实验中,一共设置了4台机器作为Server,另一台作为客户端。通过虚机,搭建以下的环境:
1. License Server: windows
2. Registry Server: windows
Unix/Windows的ClearCase主机可以使用同一registry
server
。 Registry Server可以是windows或者unix任何一种系统,在这个是实验中,我们使用的是基于windows的registry
server
。虽然可以使用统一的registry
server
,但是必须强调的是在跨平台的操作中,必须要建立至少两个region。ClearCase要求Unix的机器和windows的机器必须分别划分到不同region中。在这个实验中,创建的两个region分别是ccwin和ccunix,所有的windows机器都属于ccwin的 region,linux机器属于ccunix的region。可以在Registry
server
上使用下面的
命令
创建region:
cleartool mkregion -tag region-tag
3. Vob Server: redhat Linux 9.0
4. View Server: windows
5. Client host: windows
为了描述方面,先对每台机器进行描述,包括机器名,用途, 每台机器所属region信息:
可以通过下面的图来更好的理解实验的环境:
回页首
ClearCase用户环境准备
首先要配置windows Domain,该服务器主要用来作为windows环境中的用户
管理
。所有的ClearCase中windows服务器和Clent端都要是这个Domain中的成员。也就是说ClearCase是可以信任domain中包含的用户账号的。
为了减少账号管理所带来的工作量,可以为一些特别的
功能
创建基于角色的账号,比如"vobadm"(管理vob的admin), "relmgr"(管理release area的admin), "projmgr"(管理
project
的admin)等。对于每日都需要进行的操作,比如
check
out,
check
in,就需要创建developer的账号。使用Developer的账号在对某一个element的操作的时候,user id和group信息都会
记录
下来,但是对于访问某些ClearCase Object,这些developer的账号是有限制的,在这种情况下,使用trigger和lock就可以扩展访问ClearCase Object的保护机制。
Windows的ClearCase的账户管理可以使用windows domain,那么unix上面的ClearCase的账户管理呢? 尤其是涉及到了windows和unix并行存在的ClearCase的环境,账号管理就更加重要。
当以某一用户id登陆到安装了ClearCase的系统主机上以后,这个id就已经决定了某种信任,这种信任是可以控制用户对于Vob和View中的artifacts的访问控制
权限
。简单地说,就是以什么样的用户登陆系统,就具备了已经赋予了该用户的所有访问控制
权限
。在Vob和View中的 artifacts已经记录了用户和对应的一个或者几个组的信息,artifact用这些已经储存好的用户和组的信息和要对artifacts操作的用户和组信息进行比较,如果能够匹配的话,就可以修改这些artifacts,否则就是没有
权限
。对于从windows访问unix上的vob这种互操作的 ClearCase环境,最重要关键的一点是:Unix和windows系统上要具有相同的用户和组。Winodws的域用户名称必须要和Unix上 ClearCase的用户名称匹配,Windows的域用户所属的primary组(通过CLEARCASE_PRIMARY_GROUP用户环境变量设定)必须要和Unix上ClearCase用户的主组匹配。
在windows上用户和组的名字是case-insensitive,然而在unix上就是case-sensitive。所以如果是互操作的环境,unix和windows上面的unix和windows上面的用户和组不但要名字相同,大小写也要相同。但是ClearCase在互操作的平台下密码是可以不同的,也就是说在Windows的域中,用户账号和组的账号具有一套密码,而在unix上面可以自行定义令一套密码。
在windows上运行albd_server服务进程的用户账号是一个特殊的windows域用户的账号,这个账号缺省就是
clearcase
_albd。在互操作的环境中,如果从windows的dynamic
view
中访问unix上的vob,就要在unix的用户定义的时候考虑到:unix上必须存在一个用户能够映射这个运行windows上 albd_server服务进程的用户。在windows上运行albd_server的用户映射到unix上后成为了另一个user,这个user要能够访问unix上的Vob。
Unix在创建这个可以映射window上运行albd_server的用户账号的时候,要考虑以下几点。
* 这个unix的用户必须属于某一个组,这个组是有权限访问unix上vob或者view的。使用cleartool describe -long命令,可以看到vob或者view的访问控制权限信息。
* 这个unix的用户的primary组的名字必须和windows的域用户的primary组的名字相同。
在这次实验中,用户的设定如下所示:
Windows端:
首先已经建立好了windows的域服务器
在域服务器上,创建组clearcase和组testers
在域服务器上创建域用户clearcase_albd, ccinst, testernt
其中clearcase_albd属于clearcase组,ccinst和testernt都属于testers组
Linux端:
创建组testers
创建用户ccinst,testernt,使得他们都属于testers组
回页首
在Linux上安装SAMBA
为什么要在linux上安装samba呢?如果开发的
需求
只是从windows的snapshot view访问Linux上
VOB
数据
的话,只需要配置windows上的CCFS (控制面板 -> ClearCase -> Option ),而并不需要在Linux上安装samba。但是,如果开发需要使用dynamic view访问Vob的话,就需要这样做了。
事实上,ClearCase提供了两种方式来支持从windows的dynamic view访问Linux/Unix上的Vob:
1. NFS客户端产品,这个软件是运行在windows的用户端的并且通过NFS协议来访问Linux/Unix的
文件
系统。
2. SMB服务器端产品,这个软件是运行在Linux/Unix上的,使用SMB/CIFS协议提供windows访问Linux/Unix文件系统的功能。
在我们的例子里面,采用了第二种方式,即在Linux端启动SMB服务,使得windows能够访问到Unix的资源。Samba的安装和配置可以在安装ClearCase前进行试验,因为从windows可以访问linux/unix的文件资源,是系统级的操作。在这个实验中,先对samba进行了配置,之后再介绍安装ClearCase以及使用ClearCase的
工具
进行用户信任的校验,最后才进入windows view访问linux vob的介绍。
在Linux redhat 9.0 ES的系统中,已经缺省的安装了Samba,只要运行redhat-config-samba,就可以方便的调出samba的图形界面。可以通过 smbpasswd -a accout命令添加samba的用户,执行这条命令的同时,也给这些用户赋予了密码。这些samba用户是可以访问Linux/Unix上通过samba共享出来的资源。
创建共享
目录
,可以利用以下的Samba界面,来添加共享
目录
在Access的Tab页中,可以指定访问权限,如下图所示,共享出来的目录只允许testernt和ccinst两个Samba用户访问:
或者可以不使用以上的图形界面来配置samba,而是只是改动samba的配置文件(smb.conf):
[global]
workgroup = testers
encrypt passwords = yes
create mask = 0775
directory mask = 0775
username map = /usr/local/samba/lib/username.map
oplocks = no
kernel oplocks = no
case sensitive = no
preserve case = yes
[vobs] :
comment = Vob Storage Directory
browseable = yes
path = /var/tmp /vobs
配置好之后,再调用redhat-config-services将samba服务启动。关于Samba的安装和配置,不同的Linux/Unix系统有所不同,具体情况请参照samba的安装
手册
。
下一步就是如何验证samba是否安装成功,
建议
在验证是否可以从Windows的客户端访问到Linux/Unix上的Vob和View之前,最好先进行以下两步验证。第一步,在linux/Unix系统上使用samba工具,查看目录是否share出来,使用以下命令:
smbclient -L 机器名/IP
第二步,验证从windows端是否可以访问linux/Unix的文件系统,这与系统是否安装了ClearCase无关。步骤如下:
1. 在windows端,试图访问linux/Unix的share目录(如例中为:\\vob_svr\vobs),这个时候通常会要求你输入密码(如果你是以samba用户的名字登陆windows系统并且登陆windows系统的密码和samba用户的密码也是匹配的,该
提示
密码输入的对话框将不会出现)
2. 在windows端,访问到share出来的目录后,在这个目录里面创建一个文件。
3. 请验证你是否可以访问share的目录,如果可以访问,检查是否可以有写的权限。如果都可以的话,这一步的验证就通过了。
经过上面2步的验证之后,可以初步判定Samba的安装和配置没有什么问题了,这就为从windows view访问linux/unix vob资源做好了准备。
回页首
ClearCase安装顺序
推荐使用下面的安装顺序进行安装:
1.
license
server 和registry server .可以合并装到一台机器上面
2. Vob server: vob的物理存贮是在驻留在vob server上面的。推荐将vob server单独分离出来,便于管理,如果项目比较大,vob个数比较多,最好配置多个vob server以降低负载,提高性能。
3. View server: view的物理存储是驻留在view server上面的。 该实验将view server单独分离,这样做的好处也是可以便于view的管理,比如备份,但是如果从性能的角度考虑,推荐使用用户local的机器作为view server。
4. Client host: 用户将在客户端上运行ClearCase的客户端程序。就像上面说的一样,一般来说,用户会在运行ClearCase的客户端机器上面创建view 存储目录,那么这个客户端也可以算作view server。
回页首
ClearCase的安装
每一台我们都需要安装ClearCase。 请参见ClearCase的安装手册。 安装后,在Registry Server上建立两个region,ccwin和ccunix。Vob Server,View Server,Client端的registry Server都指向这台Registry Server(控制面板-->ClearCase -->Registry),并且使得windows的机器属于ccwin的region,Linux的机器属于ccunix的region。重新启动ClearCase的服务(控制面板-> ClearCase -->Services Startup)。
做完以上安装和设置,请对windows上的每一台机器运行ClearCase Doctor,来检查是否配置失败。在Linux/Unix上,可以使用一些ClearCase的命令来检验:比如cleartool lsregion。
回页首
用户信任校验
在"用户设定"一节中已经说到了以下几个重要方面:
1. Winodws的域用户名称必须要和Unix上ClearCase的用户名称匹配
2. Windows的域用户所属的组必须要和Unix上ClearCase用户的主组匹配,须设定CLEARCASE_PRIMARY_GROUP的环境变量,使得它的值等于unix上用户的主组。
验证方法分2步:
1.在windows的机器上,检查CLEARCASE_PRIMARY_GROUP是否已经设置成功。方法是使用creds的工具,这个工具在 C:\Program Files\Rational\ClearCase\etc\utils下,请看下图,这个输出说明了域用户ccinst的主组是testers。
2.检验windows登陆用户与Linux上的ClearCase用户和组是否具有一一对应关系,使用相同目录下的credmap工具来检验,如下图所示,说明 windows上的用户ccinst和组testers在Linux的vob server(vob_svr1)上存在对应的用户和组。
回页首
在Linux机器上面创建Vob Storage Location和Vob
1. 在Linux的机器上,执行下面的命令来创建Vob Storage Location:
cleartool mkstgloc -vob vob_unix /var/tmp/vobs
2. 使用cleartool lsstg来查看是否建立成功。请注意/var/tmp/vobs已经使用samba共享给windows系统了。这样在Windows端就可以访问到共享出来的vob storage locate
3. 创建vob也很简单,可以使用vob的
管理员
来创建vob,在实验中,是使用ccsint执行下面的命令:
umask 002
(上面的这个操作使得与Vob owner一个组内的用户也可以有读写的权限)
cleartool mkvob -tag /var/tmp/vobs/DataVob_unix -nc -stg vob_unix
4. 使用cleartool lsvob来查看是否建立成功。
5. 由于vob是由统一的vob 的管理员来创建的, 所以vob的owner或者group可能在真正开发之后需要改变,可以使用protectvob的命令来改变vob的owner和group。 cleartool protectvob -chown ccinst -chgrp testers /var/tmp/vobs/DataVob_unix.vbs 由于本实验中不需要改变vob owner了,所以上面的命令不必要进行。
6. 通过cleartool describe vob:/var/tmp/vobs/DataVob_unix 的命令查看vob的属性,同理来创建project vob,唯一不同的是需要添加-ucmproject的参数
cleartool mkvob -tag /var/tmp/vobs/ProjectVob_unix -ucmproject
-nc -stg vob_unix
回页首
在View Server上面创建View Storage Location
登陆到View Server上,可以通过运行GUI来创建view storage localtion:开始 --〉程序 --〉
IBM
Rational --〉
IBM
Rational ClearCase --〉Administration --〉Server storage wizard
也可以直接用命令行来创建:
mkstgloc -view view-svr_ccstg_d_views \\view-svr\ccstg_d\views
回页首
从windows端导入Linux的vob tag
在做完前面所讲的步骤后:
* 安装配置samba
* 安装配置ClearCase
* 创建及检验用户信任度
* 创建 vob storage location,创建vob
* 创建 view storage location
现在进入linux/unix和windows之间vob的共享关键步骤:在windows的客户端(DEV-1)使用CC提供的区域同步工具(ClearCase Region Synchronizer),将在Linux所属的region里面建立的vob tag同步到windows所属的region里面。
在没有做同步之前,在windows所属的region(ccwin)里面是看不到在linux上所建立的vob tag的。要将linux/unix上的vob或者view共享给windows的机器使用,需要将他们的tag也同步到windows的region 中。要想做到同步tag,使用Region Synchronizer:开始--〉程序--〉IBM Rationa --〉IBM Rational ClearCase --〉Administration --〉region synchronizer
启动Region Synchronizer的GUI后,windows的用户可以看到linux/unix所属region的vob/view tag。如下图所示,在Import Type中选择VOB tags的选项,就可以看linux/unix所属region(本实验是ccunix)下所有已经创建的vob tag。
选中其中一个希望导入到windows region的vob tag,点击Import,出现下面的界面,在这里需要注意的是Global Storage Path。这个path就是samba共享出来的专门存储vob storage的路径,如下图所示。(一个简单的方法来验证你是否写对了路径:在windows下直接访问该路径,如: \\vob_svr1\vobs\DataVob_unix.vbs ,如果能够访问,则说明是正确的)
Import vob tag成功后,可以在windows的用户端使用cleartool lsvob来查看,该vob tag是否已经列出,如下图所示:
也可以通过administration console的图形界面,来查看vob tag是否已经导入到windows的region中,如下图所示:
Import Linux/Unix上view tag到windows的region中,和上面import vob tag的方法是一样的,本实验并没有涉及从windows访问unix系统上的view(只涉及访问vob),详细过程就不在这里赘述。
回页首
在windows端创建和配置Project
在上面的步骤中,已经把在linux上的两个vob : DataVob_unix和ProjectVob_unix导入到了windows的region中,下面要建立Project。
以ccinst (它是ProjectVob_unix的vob owner) 登陆到windows的客户端(DEV-1),运行clearprojexp,将project explorer调用出来。
在左边的面板上,可以看到ucm project 的vob :ProjectVob_unix已经列出来了,点中component,点击右键,点击Import,Import vob as component的界面出现了,选择DataVob_unix,将其import。
在菜单上选择,File--〉New--〉Project,创建新project的wizard界面出现,如下图,
按照wizard的引导,完成project的创建,注意在第4步,需要选择DataVob_unix作为可更改的component。
这样就完成了project的建立。之后将创建integration view以及development stream/view。这个时候可以以testernt的身份,也就是准备一个开发者的身份加入到新建的project里。以testernt登陆到 windows的客户端(DEV-1),运行clearprojexp,点中新建立的project,点击右键,选择join project,join project的wizard出现了,如下图所示:
按照joing project wizard的引导,就完成了integration view以及development stream/view的建立。注意在选择integration view和development view的storage的步骤中,请选择在view server上面已经建立好的view storage location,这样就很好的利用到了view server。当然你也可以选择将view storage建立在本机上。
回页首
在windows的Client端使用ClearCase进行开发
vob, project, development view都已经建立好了,就可以在windows的客户端进行开发了。以testernt登陆到windows的客户端。启动cc explorer,在view的tag页中,选择project,这样就出现了和这个project相关的所有view ,如图所示:
在development view的空间中, mount上开发所需要的vob tag。在右面的面板上,点中development view tag, 点击右键,选择mount,在mount vob的界面中选择开发需要的vob tag:DataVob_unix。Mount上vob之后,会看到lost+found文件夹,这样就可以对该vob进行操作了。如添加private file,add to source control,checkout,checkin. 下面这张图是添加一个文件到版本控制中,在此过程中,由于是UCM的模式,所以需要指定activity:
回页首
Tips
Case-sensitivity:
可以通过设置来改变case sensitive 的mode。打开控制面板--〉ClearCase--〉MVFS中,这里可以设置mode。
在开发过程中,windows端推荐使用case insensitive mode。 如果启动case preserving,可以保留大小写(如果不启动,创建的所有文件名,MVFS会
自动
转换为小写的名字)。使用insensitive mode 需要制定一个标准的文件命名规则。如果在一个VOB中,大小写不同的文件名的含义有所不同,那么就需要使用case sensitive mode。
回页首
配置view的text mode:
如果VOB是在Unix系统上创建的,在unix系统上文本文件都是以<LF>作为行结尾标志的,如果从windows系统访问,就需要注意这个tip所说到的问题,反之亦然。
Linux/Unix系统和windows系统处理文本文件中的换行规则有所不同。文本文件中一行在Unix系统中通常以<LF> (line feed)一个字符为结尾;而在windows系统中是以<CR><LF>(carriage return,line feed)两个字符序列为结尾。ClearCase为view提供了text mode用来控制如何处理一行的结尾部分。View可以被创建在以下三种text mode下:
Transparent text mode:不处理任何一行的结尾,也就是什么转换都不做,也叫做Unix mode
Insert_cr text mode:当Unix的客户端使用transparent mode时,在windows端使用该种模式
Strip_cr text mode:当windows的客户端使用transparent mode时,在Unix客户端使用该种模式。
以一个例子说明tmode的功能,在linux机器上创建了DataVob_unix,在linux上创建一个view,mount上这个vob之后,在vob里面添加一个文本文件(文件里面包括有换行),之后在windows端作region synchronize,在windows的view里面mount上这个里面已经存在文件的linux上的vob,打开文件,会看到如下情况。
这个问题如何
解决
呢,只要在windows端创建view的时候把tmode设置成incert_cr就好了,这样创建的view就可以很好的转换从unix上传过来的文本文件了。设置tmode可以在创建view的gui里面选择,如下图:
从unix端的snapshot访问windows上的vob,如果不将tmode设置为strip_cr的话,打开文本文件也会出现问题,解决的办法是创建view的时候设置tmode为strip_cr。缺省的tmode是Transparent。
回页首
总结一下关于tmode推荐的做法:
如果所有的开发者都是用相同的开发平台(无论是windows还是unix),那么文件行结尾处的处理规则都是相同,创建view时用到的text mode就可以使用transparent text mode。如果大多数开发者都使用Unix平台进行开发,那么在Unix上的开发者创建view时应该使用transparent text mode,而在windows上的开发者应该使用insert_cr text mode。
如果大多数开发者都使用windows平台进行开发,那么在windows上开发者创建view时应该使用transparent text mode,而在Unix上的开发者应该使用strip_cr text mode。
View storage:
虽然本文的实验是配置了一专门的机器作为view server,但是真正开发的时候,从ClearCase的运行性能方面考虑,建议将view storage建立在本地,而不使用这种集中型的view管理。
回页首
总结
本文通过以下步骤,描述了如何在跨平台的环境中对一个Rational ClearCase UCM实例进行操作,包括了以下的内容:
安装配置samba,安装配置ClearCase,创建用户及验证用户信赖关系,创建 vob storage location,创建vob,创建 view storage location,创建 project,加入project,在client端开发。在文章的最后还介绍了一些开发中应该注意的问题,如case sensitivity 的设置,text mode的设置。ClearCase跨平台的操作可能是在实际开发中经常遇到一种情况,希望本文能够给正在或者即将使用ClearCase进行跨平台开发的用户或者
学习
者提供一个有用的参考。
搜索更多相关主题的帖子:
ClearCase
实例
详解
© 本文为
make
与
SCMLife
共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系
管理员
。
UID
81
帖子
277
精华
1
积分
425
阅读权限
20
在线时间
128 小时
注册时间
2006-9-8
最后登录
2008-8-28
失踪天数:0
查看详细资料
TOP
‹‹ 上一主题:关于CC中工作产品规模的统计
|
下一主题:ClearCase四大功能详述(版本控制) ››
配置管理
配置管理方法论
IBM Rational ClearCase
CCRC
IBM Rational ClearQuest / ClearDDTS/TestManager
CVS/SVN
Borland StarTeam
Microsoft VSS/VSTS
Telelogic SYNERGY
其它CM工具
Serena PVCS
Perforce
北大青鸟JBCM
Hansky Firefly&Butterfly
构建与发布管理
JIRA
Jazz&RTC
需求管理
需求管理思想
IBM Rational RequisitePro
Telelogic Doors
其它需求管理工具
Hansky DragonFly
项目管理
项目管理方法与思想
PMP认证
Microsoft Project
IBM Rational Portfolio Manager
其它项目管理工具
质量管理&质量体系
质量管理(SQA&SQC&SEPG)
过程(CMMI&ISO&RUP&Agile&6西格玛)
软件度量
测试管理
测试方法论
Test Director&Quality Center
LoadRunner
QuickTest Professional
WinRunner
IBM Rational Robot
IBM Rational Performance Tester
IBM Rational Manual Tester
IBM Rational Function Tester
IBM Rational Purify&PurifyPlus
Dunit&Junit
其它测试工具
天下中文
文档中文化
旗帜
谈书论道
职场生涯
金色职场
休闲茶座
我爱摄影
秘密论坛
论坛管理
新手上路/问题/意见/建议
活动/咨询/培训/认证
Telelogic专区
控制面板首页
编辑个人资料
积分交易
积分记录
公众用户组
个人空间管理
社区银行
附件收入排行
基本概况
流量统计
客户软件
发帖量记录
版块排行
主题排行
发帖排行
积分排行
交易排行
在线时间
管理团队
管理统计