henrylgz 发表于 2009-1-30 13:36:32

全自动安装Bugzilla(2.18)

本文首发于我中心内部,为作者原创,感谢我的学生(袁颢)给我的灵感。
文中所用的安装镜像和文件可在下列FTP下载:
ip:big-.kmip.net
user,pass:bug
这个v1版本采用bugzilla为2.18,以后再升级为更新版本。

全自动安装Bugzilla
——北大青鸟APTECH(南京泰思特)授权培训中心原创XXX
Bugzilla是自由软件领域中非常优秀的缺陷管理工具,Linux内核等大型自由软件都采用Bugzilla作为缺陷管理工具,在Linux课程中,通过实际操作,实现了Bugzilla的安装实践。下面我们将采用Shell编程以及其它操作实现在Linux下全自动安装Bugzilla,将这几部分知识整合。

0.基础环境
VMWare5.5
Red Hat Linux 9.0
基础环境的安装,通过在VMWare中新建一个Linux虚拟机来实现,安装Red Hat Linux9.0,选择自定义安装方式,其余选择默认组件安装,即可获得一个基础环境。

1.安装并配置Samba
这一步的Samba安装已经不是必须,只是整合了课程中的Samba服务安装部分,同时也有网络参数的设置,所以依然很必要。
# set samba
#set eth0
netconfig -d eth0 --ip=192.168.1.226 --netmask=255.255.255.0 --gateway=192.168.1.1
这一步使用netconfig命令设置虚拟机的ip地址,掩码,网关等参数。ip地址,网关等参数可以自行修改。

#edit ifcfg-eth0
cat ./smbadd >> /etc/sysconfig/network-scripts/ifcfg-eth0
将需要加入ifcfg-eth0的一段函数写入一个文本文件,使用cat命令附加到原有的文件后。

#start eth0
ifup eth0
启动eth0网卡

#edit network
sed -i '/HOSTNAME=/ c HOSTNAME=btest.com' /etc/sysconfig/network
将network文件中的HOSTNAME改为btest.com,当然,这里可以自行修改。

/etc/rc.d/init.d/network restart
重新启动网络服务,让前面的修改生效

#setup samba
rpm -ivh samba-3.0.20b-1.i386.rpm
cp -f smb.conf /etc/samba/smb.conf
chkconfig --level 3 iptables off
chkconfig --level 3 smb on
安装samba服务,并使用写好的smb.conf代替原系统中的文件,将iptables服务的启动项关闭,将smb服务加入启动项。

2.安装并配置Apache
Apache是Bugzilla的基本组件,为Bugzilla提供WWW服务,在这里需要安装Apache,并修改其配置文件,使之能够被Bugzilla使用。
#set apache
#setup apache
rpm -ivh httpd-2.0.40-21.i386.rpm
安装Apache,采用rpm安装包的Apache。

#edit /etc/httpd/conf/httpd.conf
sed -i '/#ServerName/ c ServerName 192.168.1.226:80' /etc/httpd/conf/httpd.conf
编辑httpd.conf,修改其中的ServerName为虚拟机的IP地址。

sed -i '/#AddHandler cgi-script .cgi/ c AddHandler cgi-script .cgi' /etc/httpd/conf/httpd.conf
将httpd.conf中的#AddHandler cgi-script .cgi的注释去掉,可以将cgi页面启用。

cat ./httpdadd >>/etc/httpd/conf/httpd.conf
将需要添加的虚拟主机附加到httpd.conf文件后,使Bugzilla的主目录成为Apache的一个虚拟主机目录。

#edit hosts
cat ./hostsadd >>/etc/hosts
将虚拟机的名称和ip的地址解析加入hosts文件中。

chkconfig --level 3 httpd on
service httpd restart
将httpd服务加入启动项,并重起httpd服务。

3.安装并配置MySQL
Bugzilla使用MySQL作为缺陷报告存储的数据库,这里需要安装MySQL4.0版本。
#set MySQL
#setup MySQL
rpm -ivh perl-CGI-2.81-88.i386.rpm
rpm -ivh perl-DBI-1.32-5.i386.rpm
rpm -ivh ./mysql/MySQL-client-4.0.27-0.i386.rpm
rpm -ivh ./mysql/MySQL-server-4.0.27-0.i386.rpm
rpm -ivh ./mysql/MySQL-shared-4.0.27-0.i386.rpm
rpm -ivh ./mysql/MySQL-devel-4.0.27-0.i386.rpm
/etc/init.d/mysql start
安装MySQL数据库,在安装之前,由于软件的依赖关系,需要先安装perl-CGI-2.81-88,perl-DBI-1.32-5这两个模块,然后安装4个MySQL数据库的rpm包。然后启动mysql服务。

#set MySQL
mysqladmin -uroot password 123456
mysql -uroot -p123456<mysql.sql
chkconfig --level 3 mysql on
首先修改MySQL数据库的root账户的密码,这里要使用mysqladmin命令在Linux环境下修改,然后使用root/密码登录MySQL,在这里将需要执行的mysql命令写入一个文本文件中,使用输入重定向将这些命令载入执行。最后将mysql服务加入启动项。

4.安装并配置Bugzilla
在这里将安装Bugzilla,同时将后面所需的sendmail组件先行安装。
#set bugzilla
#sendmail
rpm -ivh ./sendmail/sendmail-cf-8.12.8-4.i386.rpm
rpm -ivh ./sendmail/imap-2001a-18.i386.rpm
rpm -ivh ./sendmail/imap-devel-2001a-18.i386.rpm
先行安装sendmail的三个安装包。

tar -x -C /var/www/html/ -zvf bugzilla-2.18rc2.tar.gz
mv /var/www/html/bugzilla-2.18rc2 /var/www/html/bugzilla
将bugzilla-2.18rc2解包,放在/var/www/html/下,并改名为bugzilla。

tar -x -C /tmp -zvf ./modules/AppConfig-1.56.tar.gz
……
tar -x -C /tmp -zvf ./modules/PatchReader-0.9.5.tar.gz
将全部的perl模块解压至/tmp目录下。

cp accessadd /tmp
cp local-host-namesadd /tmp
将安装过程中的附加文件拷贝到/tmp目录下。

#copy answer file
cp Template_answer /tmp/Template-Toolkit-2.14
cp localconfig_answer /var/www/html/bugzilla
将安装过程中的应答文件拷贝到/tmp目录下。

cd /tmp/AppConfig-1.56
perl Makefile.PL;make;make test;make install
……
cd /tmp/Template-Toolkit-2.14
perl Makefile.PL<Template_answer;make;make test;make install
……
cd /tmp/PatchReader-0.9.5
perl Makefile.PL;make;make test;make install
进入/tmp相应目录,安装全部的perl模块安装包,其中Template-Toolkit-2.14需要应答文件,使用重定向输入应答文件。

cd /var/www/html/bugzilla
perl checksetup.pl
进入bugzilla目录,运行checksetup.pl,生成localconfig配置文件

sed -i '/$index_html = 0;/ c $index_html = 1;' localconfig
sed -i "s/db_pass = ''/db_pass = \'123456\';/" localconfig
修改localconfig配置文件,将index_html和db_pass修改为设定的值。注意sed修改的参数使用。

perl checksetup.pl<localconfig_answer
再次运行checksetup.pl,使用应答文件重定向输入,答复几个提示的问题。

chown -R apache.apache /var/www/html/bugzilla
将权限分配给Apache服务

5.安装并配置Sendmail
Sendmail服务是Bugzilla正常使用时必须具备的服务,它提供了获取初始密码,接收缺陷报告通知的服务。
#set sendmail
#edit /etc/mail/sendmail.mc
sed -i "/127.0.0.1/d" /etc/mail/sendmail.mc
make –C /etc/mail
修改sendmail.mc,去除只能从本机发送mail的限制。

#edit /etc/mail/access
cat /tmp/accessadd >>/etc/mail/access
makemap hash /etc/mail/access.db< /etc/mail/access
修改access文件。

#edit /etc/mail/local-host-names
cat /tmp/local-host-namesadd >>/etc/mail/local-host-names
newaliases
修改local-host-names,加入本机的本地域名。

#edit /etc/xinetd.d/ipop3
sed -i "s/= yes/= no/" /etc/xinetd.d/ipop3

#edit /etc/xinetd.d/imap
sed -i "s/= yes/= no/" /etc/xinetd.d/imap
修改ipop3和imap文件,加入对这两个协议的支持。

chkconfig --level 3 imap on
chkconfig --level 3 ipop3 on
service xinetd restart
将imap,ipop3服务加入启动项,并重起xinetd服务。

rm -f -r /tmp/*

reboot
最后删除/tmp目录下所有临时文件,并重起Linux系统

将全部上述命令写入一个文件,作为shell能够执行的命令文件。将全部需要的安装包,附加文件,应答文件放入同一文件夹,使用光盘映像制作工具,制作成为一张光盘,只要将其挂载到基础环境中,执行“bash 命令文件”,即可实现全自动安装,全过程只需要十分钟,最后重起一次之后,Bugzilla即可投入使用。全部内容在VMWare5.5,Red Hat Linux9.0上测试通过。
全部的安装过程,使用了Bugzilla安装过程中所用到的全部知识,以及Shell编程,网络参数设置等其他知识,所生成的全自动安装光盘也可以作为工作中的辅助工具使用,提高测试的标准化和自动化。
页: [1]
查看完整版本: 全自动安装Bugzilla(2.18)