用户工具

站点工具


doc:t:setup_tinderbox

搭建tinderbox(编写中)

1.什么是tinderbox

2.安装并初始化

3.用nginx处理webui

4.make config呢?

—————————————————————————————————————-华丽的分割线

TinderBox是一个什么东西呢?我只能说这是一个Committer必不可少的工具。

我抄一段一位台湾热心于FreeBSD Ports的同行的博客中的一段在这里:

“Tinderbox (在misc/tinderbox裡)主要是拿來測試port是否可以正常的編出來,順便產生package。網頁在http://tinderbox.marcuscom.com/這,其中的README寫得蠻清楚的,建議仔細看。

Tinderbox 的好處在於他會產生一個chroot的環境(在Tinderbox官方說明文件裡的“Jail”指的是 chroot的環境,下面提到Jail都是指這個,而非FreeBSD的jail),然後在裡面進行編譯的工作,這可以測試在系統什麼都沒有裝的情況下是否能正確編譯。主要是要看有沒有漏設 *_DEPENDS。”

TinderBox的安装是非常简单的,直接:

# cd /usr/ports/ports-mgmt/tinderbox
# make install clean

就可以了。

难的和烦的是后继的工作,要把/usr/local/tinderbox/scripts/README打印放在一边才好开始工作。大体的步骤包括:

1 简单的初始化和配置文件的修改。

第一步:数据库初始化

# cd /usr/local/tinderbox/scripts
# ./tc Setup

这一步主要是问你选择Mysql还是Postgresql,并询问相关帐号以创建数据库。如果没有数据库管理员的帐号和密码,就无法自动完成本初始化步骤,需要手工创建配置文件,具体参照README。

如果需要使用网页来管理使用Tinderbox—-这个我是强烈推荐的,则还需要:

# cd /usr/local/tinderbox/scripts/webui
# cp inc_ds.php.dist inc_ds.php
# vi inc_ds.php

按照刚生成的/usr/local/tinderbox/scripts/ds.ph文件来修改inc_ds.php文件

第二步:

# cd /usr/local/tinderbox/scripts
# cp tinderbox.ph.dist lib/tinderbox.ph
# vi lib/tinderbox.ph

编辑tinderbox.ph文件,修改网站的名字、域名等。(在新的tinderbox版本中需要把tinderbox.ph复制到/usr/local/tinderbox/scripts/lib目录下). 需要使用网页管理的还要:

# cd /usr/local/tinderbox/scripts/webui
# cp inc_tinderbox.php.dist inc_tinderbox.php

同上修改inc_tinderbox.php文件。

第三步:Tinderbox初始化:

# cd /usr/local/tinderbox/scripts
# ./tc init

这个不难,按照README去做就可以了。

2 建设Jails。

建议宿主系统最好成绩选择9.0-Current,否则在低版本的宿主系统上建设高版本的Jail会出问题。
这是最费时间的一个步骤,最好建设这三个Jail,要注意RELENG的写法,分别是:
# cd /usr/local/tinderbox/scripts
# ./tc createJail -j 9.0 -d "FreeBSD 9.0-Current" -t . -u CSUP
# ./tc createJail -j 8.1 -d "FreeBSD 8.0-Stable" -t RELENG_8 -u CSUP
# ./tc createJail -j 7.3 -d "FreeBSD 7.2-Release" -t RELENG_7_2 -u CSUP

建设一个Jail相当于从源码编译一个基本的FreeBSD系统,即要下载整个src代码—用du查大约700多M,还要全部编译,需要的时间可想而知了。在我这里网络速度还不错,200+K/s,大约需要半天时间建设好一个Jail。

3 建设PortsTree

这其实就是建立一个专门给Tinderbox使用的PortsTree,可以建设多个,但是一般而言建设一个就够了。这步很简单,按照README去做就可以了。下载需要比较多的时间。

4 建设Builds

一般有几个Jails就建设几个Build,很快很简单。

5 因为我需要通过web页面来管理Tinderbox,首先我还需要安装好Apache、PHP、MySQL或者是PostgreSQL。 然后把以下语句写入到Apache的配置文件之中:

Alias /tb/logs/ "/usr/local/tinderbox/logs/"
Alias /tb/packages/ "/usr/local/tinderbox/packages/"
Alias /tb/errors/ "/usr/local/tinderbox/errors/"
Alias /tb/wrkdirs/ "/usr/local/tinderbox/wrkdirs/"
Alias /tb/ "/usr/local/tinderbox/scripts/webui/"
<Directory "/usr/local/tinderbox/">
    Order allow,deny
    Allow from all
</Directory>

6 通过web页面来管理Tinderbox,还需要Web管理账户。 增加方法: 增加用户

# cd ${pb}/scripts && ./tc addUser -u {USER} -e {EMAIL} -p {PASSWORD} -w

授予Web页面管理权限

# cd ${pb}/scripts && ./tc setWwwAdmin -u {USER}

7 收尾工作:

我主要做这么几个工作,一是使用命令: # ./tc configDistfile -c /usr/ports/distfiles 这样可以免得每次使用Tinderbox编译的时候都去下载源码,我一般设置cache的目录就是 /usr/ports/distfiles;二是如果需要开机自动启动tinderbox的话,需要在/etc/rc.conf中添加“tinderd_enable=“YES”“,注意看清楚README,要修改配置文件,修改文件属性,否则无法执行。

好了,差不多了,一个可以工作的Tinderbox建设好了.

/data/vhosts/wiki-data/pages/doc/t/setup_tinderbox.txt · 最后更改: 2011/12/24 15:54 由 wenheping