我需要在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的配置
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
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中得到最新的版本,其它版本還是容易出現不正常的問題的。安裝上不難:
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權限。