关键词:
Jenkinssvn自动化持续集成
摘要:
Jenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用于监控秩序重复的工作,包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
案例描述
针对我们公司项目是迭代开发模式,所以有引入自动化的需求,对于自动化的管理,用持续集成工具再好不过了,先分享出jenkins的使用方法和大家一起学习。
引入jenkins的优点:
开源免费;
跨平台,支持所有的平台;
master/slave支持分布式的build;
web形式的可视化的管理页面;
安装配置超级简单;
tips及时快速的帮助;
已有的1000多个插件;
可管理性强。
2.1jenkins安装(ubuntu)
Jenkins支持的系统有很多:
Windows、Ubuntu/Debian、Red Hat/Fedora/CentOS、Mac OS X、openSUSE、FreeBSD、OpenBSD、Solaris/OpenIndiana、Gentoo。
介绍下基于Debian的Ubuntu系统安装方法:
‘添加软件包的库用于安装和更新jenkins,需要下载jenkins-ci.org.key文件,把下载的key添加到本地trusted数据库中。
wget -q -O -http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
‘将echo deb
http://pkg.jenkins-ci.org/debian binary/添加到/etc/apt/sources.list.d/jenkins.list中。
sudo sh -c 'echodeb http://pkg.jenkins-ci.org/debian binary/ >/etc/apt/sources.list.d/jenkins.list'
‘更新源
sudo apt-getupdate
‘安装jenkins
sudo apt-getinstall jenkins
安装好后使用firefox打开“http://hostname:8080”访问安装好的jenkins。
2.2jenkins使用
2.2.1构建任务:
需求:构建从svn服务器中定时更新selenium+jruby项目,并执行自动执行项目工程,返回测试结果。
在首页上点击“新Job”
输入“任务名称”如:test
以下5个选项可以根据项目需要选择,如“构建一个自由风格软件项目”,然后点击OK!
配置SVN
1.输入SVN的URL
2.首次连接会失败这时你需要点击enter_credential,进入
配置完成后并保存,构建任务将不会有无法连接SVN的提示。
3.check-out
Strategy选择svn update
jenkins的构建触发中Poll SCM和Build periodically的区别:
Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。如:
*/5 * * * *(每5分钟检查一次源码变化)
Build periodically:周期进行项目构建(它不关心源码是否发生变化),如:
0 2 * * *(每天2:00必须build一次源码)
PS:点击日程表后面的问号,里面会介绍每个星号代表的参数以及使用方法。
设置“构建”中的构建步骤:
增加一条基于shell的命令,选择Execute shell
在Command中输入:
pwd------------------------(查看当前运行路劲)
ruby test.rb-----------------(test.rb是SVN服务器上checkout下来的文件)
最后保存这个构建:
保存好的构建就会定时运行项目了。
运行后我们可以查看运行日志:
查看项目趋势图:
2.2.2Jenkins的Slave配置
构建对个slave服务器,用于实现分布式管理:
基于windows的slave配置
进入http://hostname:8080/computer/下(也可以通过主界面的“系统管理”->“管理节点”进入)“新建节点”
配置Name如:windows server(没多大要求)
Of executors推荐设置为1
remote FS root指向需要关联到的目标windows的文件路径(必须是存在的)。
用法选择“只允许运行绑定到这台机器的Job”
Launch method“Launch slave agents via Java Web
Start”
Availability选择“Keep this slave on-line as much as possible”
点击保存,重新进入到http://hostname:8080/computer/点击刚刚创建的windows server进入到
点击黄色按键,直到弹出
表示成功
此时系统的状态也被显示了出来。
基于linux的slave配置
进入http://hostname:8080/computer/下(也可以通过主界面的“系统管理”->“管理节点”进入)“新建节点”
配置Name如:linux server(没多大要求)
Of executors推荐设置为1
remote FS root指向需要关联到的目标windows的文件路径(必须是存在的)
用法选择“只允许运行绑定到这台机器的Job”
Launch method选择“Launch slave agent in Unix
machines via SSH”
Host填写目标地址
Credentials首次设置此项时,点击右边的问号按钮
会有提示内容出现,再点击提示内容中的“add some”页面将会跳转到
我们使用的是SSH
username with password的证书。
填写该linux系统的用户名和密码(此用户名的权限必须具备remote FS root指向的文件的读写和执行的权限)保存
Availability选择“Keep this slave on-line as much as possible”
点击保存。
然后lunch slave,使得master和slave通过ssh成功连接。其实launch的时候jenkins自动地从http://yourserver:port/jnlpJars/slave.jar拷贝slave.jar到slave,然后运行通过命令java -jar slave.jar来运行slave。
以下为成功连接后的界面:
在jenkins上使用slave,只需要在slave的配置上将labels的名称写到jobs的Restrict where this project can be
run中即可。
2.2.3Jenkins的授权和访问控制
默认的Jenkins不包含任何的安全检查,任何人可以修改Jenkins设置,job和启动build等。对于多部门协调工作的公司显然不合适,没有任何安全检查会给我们的工作带来很多问题。
我们可以通过以下2方面来增强Jenkins的安全性:
进入http://hostname:8080/manage
点击Configure
Global Security,进入配置界面
勾选“启用安全”,详细配置如下:
首次设置一定要“允许用户注册”和“任何用户可以做任何事(没有任何限制)”
设置好之后,重新进入http://hostname:8080,通过界面注册用户(需要几个注册几个)
登录后重新进入Configure
Global Security,进入配置界面
去除“允许用户注册”阻止任何用户注册
授权策略选择“安全矩阵”,便可以对不同的用户设置不同的权限了。
以上介绍了一些常用的功能,还有jenkins支持的众多插件没介绍,以及更多的运用场景没介绍,希望有兴趣的同学可以自行研究。