啥也没写
分类: BSD
2008-05-20 11:23:02
我需要在FreeBSD中完成一个与google codes一起协作的集成环境。我需要的是这样的一个环境:
1.使用google codes的subversion
2.在本地有一个trac,这个trac跟踪svn中的更新,同时可以与相关的集成、测试环境进行协作
3.在本地有一个集成测试环境,我使用了bitten来做这个事
4.支持多个项目同时进行工作
5.使用LDAP进行用户身份验证
整体的来讲,这个系统是这样的一个其作流程:
1.用户通过svn将代码提交到google codes上的svn服务器
2.本地的服务器通过svnsync把代码同步到本机的svn库中
3.用户可以通过trac访问本机的svn库中
4.在trac中的bitten插件,得到本trac中的更新,生成了客户端们的集成和测试任务
5.客户端通过bitten客户端取得本机的集成和测试任务并且进行相关的其作,把结果发回trac
6.用户可以通过本机的trac可以知道所有的测试和集成进展
这里记下的没有理念和想法,只是把实现的系统配置说明了。主要说明的是:
1.apache安装
2.subversion安装
3.trac的安装
4.trac-webadmin的安装
5.svnsync的配置
6.svn的配置
7.trac的配置
8.trac-webadmin的配置
9.bitten的安装
10.bitten的配置
Apache的安装
在FreeBSD下安装apache很简单,注意相关的配置参数就好:
cd /usr/ports/www/apache22
sudo make WITH_AUTH_MODULES=yes WITH_DAV_MODULES=yes WITH_SSL_MODULES=yes WITH_LDAP_MODULES=yes WITH_BERKELEYDB=db42 install clean
Subversion的安装
FreeBSD安装subeversion也不麻烦,同样把参数不要落了就好:
cd /usr/ports/devel/subversion
sudo make WITH_MOD_DAV_SVN=yes WITH_APACHE2_APR=yes WITH_PYTHON=yes WITH_ASVN=yes install clean
Trac的安装
安装trac使用了ports的config,注意选择好相关的配置:
cd /usr/ports/www/trac
sudo make install clean
选择SILVERCITY、DOCUTILS和SUBVERSION。
Trac-Webadmin的安装
cd /usr/ports/www/trac-webadmin
sudo make install clean
svnsync的配置
这个配置方法之前我写过。这里使用一个cron来run它。我在crontab中有这样的信息:
*/30 * * * * /home/hd/bin/syncsvn.sh
这里的syncsvn.sh差不多是这样的:
/usr/local/bin/svnsync sync file:///home/hd/svn/xbaydns
Subversion的配置
我的svn服务是over http的,也就是使用了apache的webdav集成,在/usr/local/etc/apache22/Includes中我有一个svn.conf文件,内容如下:
DAV svn
SVNParentPath /home/hd/svn
AuthType Basic
AuthName "HDMac Repository"
AuthzSVNAccessFile /home/hd/svn-auth
AuthBasicProvider ldap
AuthLDAPURL ldap://hdbsd:1389/ou=user,dc=xbaynet,dc=com?cn
AuthLDAPBindDN "cn=hd,ou=user,dc=xbaynet,dc=com"
AuthLDAPBindPassword "password"
AuthzLDAPAuthoritative on
Require valid-user
注意,这里使用了SVNParentPath,也就是多库型的svn主机,这样简化了相应的配置。后面的Auth系列是LDAP的设置。
trac的配置
初始化一个trac的目录:
trac-admin /home/hd/trac/perbay initenv
你可以,使用tracd来启动trac:
tracd --port 8000 /home/hd/trac/perbay
不过,我更喜欢使用apache/mod_python来启动trac,我在/usr/local/etc/apache22/Includes中加入了trac.conf,这里我也使用了LDAP为trac来认证:
LoadModule python_module /usr/local/libexec/apache22/mod_python.so
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /home/hd/trac
PythonOption TracUriRoot /trac
AuthType Basic
AuthName "Trac"
AuthBasicProvider ldap
AuthLDAPURL ldap://hdbsd:1389/ou=user,dc=xbaynet,dc=com?cn
AuthzLDAPAuthoritative on
Require valid-user
Trac-Webadmin配置
在trac中加入web-admin模块,修改conf目录中的trac.ini:
[components]
webadmin.* = enabled
将相关的用户加入管理组,让其有管理员权限:
trac-admin /home/hd/trac/perbay permission add hd TRAC_ADMIN
Bitten的安装
bitten现在还只能从svn中得到最新的版本,其它版本还是容易出现不正常的问题的。安装上不难:
svn co /home/hd/soft/bitten
cd /home/hd/soft/bitten
sudo python setup.py install
Bitten的配置
如果已经配置好了trac-webadmin,哪么bitten配置还是很简单的,先在trac.ini中加入这样的配置项:
[components]
bitten.* = enabled
上面已经为webadmin加了配置,所以不用再多写[components]了。安装了bitten后需要升级一下bitten的配置:
trac-admin /home/hd/trac/xbaydns upgrade
再登录到trac中去,使用admin给相关的用户授权。要给anonymous加上BUILD_EXEC和BUILD_VIEW权限。给有管理权限的用户加上BUILD_ADMIN权限。