buildbot二:部署
一、环境准备:
Buildbot所需要的Python依赖环境比较多,而且版本依赖比较严重,0.8.x和0.9.x中很多类的使用以及命名有很大区别本教程的master是以0.9.0b7这个版本来搭建的。
要求:
Python 版本:2.7
官方手册中要求的是2.6或2.7,不能使用其他的版本
Twisted 版本:11.0.0及以上
sqlite3 版本:3.7.0及以上
Jinja2 版本:2.1及以上
SQLAlchemy 版本:0.8.0及以上
SQLAlchemy-Migrate 版本:0.9.0及以上
Python-Dateutil 版本1.5及以上
Autobahn0.10.0及以上
windows下还需要安装Pywin32支持
二、master环境搭建:
1.安装开发环境依赖:
查看系统相关:
uname -a # 显示电脑以及操作系统的相关信息,可知linux的内核版本是: 3.10.0-957.1.3.el7.x86_64 # 如,Linux instance-26x8vcvs 3.10.0-957.1.3.el7.x86_64 #1 SMP Thu Nov 29 14:49:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux cat /proc/version # 查看linux内核版本,可知linux的内核版本是: 3.10.0-957.1.3.el7.x86_64,由centos发行 # 如,Linux version 3.10.0-957.1.3.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 29 14:49:43 UTC 2018 lsb_release -a # 查看发行版本信息 # 如, LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.5.1804 (Core) Release: 7.5.1804 Codename: Core
安装python编译依赖的环境,如下:
编译安装过程需要的库:
yum -y install gcc make zlib1g-dev
bz2支持库(用于pip install 安装提供bz2格式的第三方库):
yum -y install libbz2-dev
sqlite3支持库:
yum -y install libsqlite3-dev
其他:安装第三方库需要的库:
yum -y install install python3-dev libxml2-dev libffi-dev libssl-dev libxslt1-dev libssl-dev libffi-dev build-essential
ubuntu对应的命令:
sudo apt-get install gcc make zlib1g-dev sudo apt-get install libbz2-dev sudo apt-get install libsqlite3-dev sudo apt-get install python3-dev libxml2-dev libffi-dev libssl-dev libxslt1-dev
2.编译安装Python:
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz tar -zxvf Python-3.6.1.tar.xz cd Python-3.6.1 ./configure # 配置 make # 编译 sudo make install # sudo -H make install
3.安装pip:
wget href="https://files.pythonhosted.org/packages/93/ab/f86b61bef7ab14909bd7ec3cd2178feb0a1c86d451bc9bccd5a1aedcde5f/pip-19.1.1.tar.gz" tar -zxvf pip-19.1.1.tar.gz cd pip-19.1.1 python setup.py install
4.install Twisted:
twisted依赖python和zope.interface,在安装twisted之前,以下组件是必须的,否则会报错
sudo yum install python-devel python-crypto pyOpenSSL zope
安装twisted
pip install Twisted==18.7.0rc1
twisted需要与python的版本匹配,检查twisted是否可用:
from twisted.internet import reactor
5.安装 buildbot(依赖Twisted和Python):
buildbot依赖Twisted和Python,还依赖six
pip方式:
pip install six pip install buildbot==1.1.0 pip install buildbot-www==1.1.0 pip install buildbot-grid-view==1.1.0 pip install buildbot-console-view==1.1.0 pip install buildbot-waterfall-view==1.1.0
检测buildbot是否安装成功:$buildbot --version
三、master搭建
1.建立buildbot master:
$buildbot create-master buildbot_master,该命令会在当前目录下生成buildbot_master目录,且该目录下有一个配置文件为master.cfg.sample
2.测试master.cfg配置文件:
$cd buildbot_master
$mv master.cfg.sample master.cfg
$buildbot checkconfig master.cfg
测试中提示失败,six包的版本太低,升级six
pip install -U six
正确则:Config file is good!
8.配置master.cfg:
首先我们先要知道我们master主机的IP地址,之后打开我们的master.cfg文件,找到c[‘buildbotURL’] 和c[‘www’] 这两个属性,修改他们的URL(本地主机的IP地址)和端口号。如下图:

9.启动、停止build-master服务器:
$cd buildbot_master
$buildbot start ./
$buildbot stop ./
buildbot是在web页面对我们的项目测试以及代码监控进行显示,对于一个局域网下,只要我们能够连接到这台虚拟机,我们就可以通过web页面的形式来随时了解我们的slave的连接以及代码的变化和以往的测试情况。
如果报错,根据twistd.log日志提示,检查是否缺少组件。
10.查看twistd.logtwi日志:
启动了buildmaster,buildmaster文件夹目录下多出来了一个twistd.log日志文件,由于buildbot所依赖的插件比较多,第一次运行不见得能成功。
所以我们需要去twistd.log文件查看我们的buildbot是否启动成功,如果不成功会在.log中找到我们的出错信息。
比如,缺少waterfall_view这个插件,我们可以去buildbot官网上去下载安装,安装步骤如buildbot安装步骤
四、slave部署
对于Buildbot-worker,安装如下包即可:
pip install buildbot-worker
buildbot-worker create-worker worker LOCAL-HOST NAME PASSWD # 创建Buildbot-worker,worker为目录名
buildbot-worker start worker # 启动Buildbot-worker
buildbot-worker stop worker
说明:
1.NAME和PASSWD均会在配置Buildbot-master时用到,这些信息用于在Buildbot-master中认证Buildbot-worker,所以只有得到Buildbot-master授权的Buildbot-worker才可以得到连接。这个要和master下的master.cfg 中的 c['workers'] 配置保持一致。
2.LOCAL-HOST: 这是在本机上创建worker的方法,如果在其他机器上,要把localhost换成master所在的ip。
由于Buildbot-worker节点执行具体的构建工作,因此还需根据项目安装编译、测试必须的依赖和工具,目前暂时用到的是gtest、cmake、g++、gmake(FreeBSD下的GNU make)等,根据需要进行定制,我是手动去部署的,但是这些工作实在冗余,如果数量巨大则建议使用Ansible进行管理。
posted on 2019-06-28 16:54 myworldworld 阅读(899) 评论(0) 收藏 举报
浙公网安备 33010602011771号