subversion服务器搭建并集成atlassian crowd做账户管理

首先是一堆依赖的安装。

yum install make
yum install libtool
yum install zlib zlib-devel

yum install libserf

yum install openssl openssl-devel

yum install apr apr-devel apr-util apr-util-devel
yum install perl-devel perl-ExtUtils-Embed

sqlite yum源里的版本太低。 需要到 sqlite.org下载最新的源代码, configure; make; make install; 安装

subversion.apache.org下载最新的源代码。
./configure –prefix=/data/software/subversion
make
make install

===========================================================
安装apache:
下载安装apache:
httpd.apache.org下载最新2.4版源代码。

groupadd webmaster
useradd -g webmaster webmaster

yum install pcre pcre-devel

下载apr和apr-util,放到apache安装包目录下的srclib下,作为 apr和apr-util两个目录。
注意如果打算用atlassian crowd集成的话,那么在安装apache安装最好不要增加–prefix选项指定路径,因为crowd apache connector编译的时候很麻烦。
./buildconf
./configure –enable-dav –enable-so –enable-maintainer-mode –with-included-apr –enable-ssl
make
make install

编译apache的svn模块
回到svn源代码目录

./autogen.sh

./configure
make clean
make
make install

这时候/usr/local/lib/目录下应该生成了一些libsvn*的文件。
同时/usr/local/libexec/目录下应该有mod_authz_svn.so和mod_dav_svn.so两个文件。

=======================================================================

接下来是配置apache的svn模块。
先建立一个svn的repository.

mkdir /data/svnrepo
cd /data/svnrepo
svnadmin create myrepo
此时myrepo下应该有conf, db, hooks, locks等目录和format等文件。

vi /usr/local/apache2/conf/httpd.conf
在LoadModule的最后部分(至少要在mod_dav.so之后才行)增加一行:
LoadModule dav_svn_module modules/mod_dav_svn.so

在httpd.conf最后增加以下内容:
<Location /svn/repos/myrepo>
DAV svn
SVNPath /data/svnrepo/myrepo
</Location>

找到User和Group的配置,设置为webmaster用户和组。
别忘了把repo的目录改为webmaster所有。否则将因为没有写权限而导致无法commit。

 

在httpd.conf 中找到ServerName指令,
ServerName scm.yourhost.com:80

cp /usr/local/libexec/mod_* /usr/local/apache2/modules/

启动和测试:
/data/software/apache2/bin/apachectl start

测试访问地址:
http://apachehost/svn/repos/myrepo

=======================================================================
到此时,我们的svn是可以访问的了,但是开放访问权限的,任何人都可以commit,无需登陆。
接下来我们用的是atlassian的crowd产品来做为账号管理。(我们还使用了confluence和jira,它们都用crowd作为账号管理系统)。
如果不用crowd,就参考subversion源代码目录中的INSTALL文件中提到的Security配置来控制svn的权限即可。

参考:https://confluence.atlassian.com/display/CROWD/Integrating+Crowd+with+Subversion
集成crowd,需要安装crowd apache connector。
在crowd里建立application,group,然后指定group有访问该application的权限。

以下这些步骤参考自atlassian官方的wiki中的说明,版本号等可能会过期,下次安装时应该重新去atlassian官方wiki中查看:
安装crowd apache connector,依赖:
yum install autoconf automake gcc httpd-devel libcurl-devel libtool libxml2-devel mod_dav_svn subversion-devel

wget http://downloads.atlassian.com/software/crowd/downloads/cwdapache/mod_authnz_crowd-2.2.2.tar.gz
tar xzf mod_authnz_crowd-2.2.2.tar.gz
cd mod_authnz_crowd-2.2.2
autoreconf –install
./configure
make
make install

在之前httpd.conf中增加的那个Location中增加:
AuthName “Atlassian Crowd”
AuthType Basic
AuthBasicProvider crowd

CrowdAppName {thename}
CrowdAppPassword {thepass}
CrowdURL http://scmdomain/crowd/

#如果没有下面这个指令,那么在客户端不支持cookie的情况下性能非常差。 比如在eclipse中使用的subversive插件。
CrowdCreateSSO off

Require valid-user

上边的appname和password,就是在crowd中为subversion建立的application时所设定的name和pass。

确定 LoadModule的地方有:
LoadModule authnz_crowd_module modules/mod_authnz_crowd.so
LoadModule authz_svn_crowd_module modules/mod_authz_svn_crowd.so
如果没有的话需要手动增加上。 如果modules目录下没有这2个so文件,需要从之前connector的安装目录中copy过来。(这是后来edit的,不记得当初是否默认就安装到了apache目录下的modules下)

重启apache。
到此集成完成。 使用crowd作为subversion的用户管理。

(全文完)

 

 

《subversion服务器搭建并集成atlassian crowd做账户管理》有2个想法

  1. 博主,你好,最近我想集成crowd和SVN ,但是您的这篇文章我看不太懂,能给我一些指导和帮助吗?

  2. 看的不是太懂,现在我想在windows下集成Crowd与subversion 能不能给我一些帮助指导?可以通过邮箱联系一下吗?我的邮箱zhangzhanxi198@163.com 谢谢

发表评论

电子邮件地址不会被公开。 必填项已用*标注