Jenkins环境搭建及使用

关键词:

Jenkinssvn自动化持续集成

摘要:

Jenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用于监控秩序重复的工作,包括:

1、持续的软件版本发布/测试项目。

2、监控外部调用执行的工作。

案例描述

针对我们公司项目是迭代开发模式,所以有引入自动化的需求,对于自动化的管理,用持续集成工具再好不过了,先分享出jenkins的使用方法和大家一起学习。

1案例分析

引入jenkins的优点:

开源免费;

跨平台,支持所有的平台;

master/slave支持分布式的build;

web形式的可视化的管理页面;

安装配置超级简单;

tips及时快速的帮助;

已有的1000多个插件;

可管理性强。

2解决过程

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。

Jenkins环境搭建及使用_第1张图片
jenkins

2.2jenkins使用

2.2.1构建任务:

需求:构建从svn服务器中定时更新selenium+jruby项目,并执行自动执行项目工程,返回测试结果。

在首页上点击“新Job”

Jenkins环境搭建及使用_第2张图片
新建job

输入“任务名称”如:test

以下5个选项可以根据项目需要选择,如“构建一个自由风格软件项目”,然后点击OK!

配置SVN

Jenkins环境搭建及使用_第3张图片
配置SVN

1.输入SVN的URL

2.首次连接会失败这时你需要点击enter_credential,进入

Jenkins环境搭建及使用_第4张图片
svn认证

配置完成后并保存,构建任务将不会有无法连接SVN的提示。

3.check-out

Strategy选择svn update

Jenkins环境搭建及使用_第5张图片
构建触发器


Jenkins环境搭建及使用_第6张图片
构建触发器

jenkins的构建触发中Poll SCM和Build periodically的区别:

Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。如:

*/5 * * * *(每5分钟检查一次源码变化)

Build periodically:周期进行项目构建(它不关心源码是否发生变化),如:

0 2 * * *(每天2:00必须build一次源码)

PS:点击日程表后面的问号,里面会介绍每个星号代表的参数以及使用方法。

设置“构建”中的构建步骤:

Jenkins环境搭建及使用_第7张图片
构建步骤

增加一条基于shell的命令,选择Execute shell

在Command中输入:

pwd------------------------(查看当前运行路劲)

ruby test.rb-----------------(test.rb是SVN服务器上checkout下来的文件)

最后保存这个构建:

保存好的构建就会定时运行项目了。

运行后我们可以查看运行日志:

Jenkins环境搭建及使用_第8张图片
运行日志

查看项目趋势图:


Jenkins环境搭建及使用_第9张图片
项目趋势图

2.2.2Jenkins的Slave配置

构建对个slave服务器,用于实现分布式管理:

基于windows的slave配置

进入http://hostname:8080/computer/下(也可以通过主界面的“系统管理”->“管理节点”进入)“新建节点”

Jenkins环境搭建及使用_第10张图片
新建节点

配置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进入到

Jenkins环境搭建及使用_第11张图片
launch

点击黄色按键,直到弹出

Jenkins环境搭建及使用_第12张图片
connectd

表示成功

Jenkins环境搭建及使用_第13张图片
成功后的图

此时系统的状态也被显示了出来。

基于linux的slave配置

进入http://hostname:8080/computer/下(也可以通过主界面的“系统管理”->“管理节点”进入)“新建节点”

Jenkins环境搭建及使用_第14张图片
新建节点

配置Name如:linux server(没多大要求)

Of executors推荐设置为1

remote FS root指向需要关联到的目标windows的文件路径(必须是存在的)

用法选择“只允许运行绑定到这台机器的Job”

Launch method选择“Launch slave agent in Unix

machines via SSH”

Host填写目标地址

Credentials首次设置此项时,点击右边的问号按钮

Jenkins环境搭建及使用_第15张图片
add some

会有提示内容出现,再点击提示内容中的“add some”页面将会跳转到

Jenkins环境搭建及使用_第16张图片
manage credentials

我们使用的是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环境搭建及使用_第17张图片
gui

在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,进入配置界面

Jenkins环境搭建及使用_第18张图片
配置页

勾选“启用安全”,详细配置如下:

Jenkins环境搭建及使用_第19张图片
详细配置

首次设置一定要“允许用户注册”和“任何用户可以做任何事(没有任何限制)”

设置好之后,重新进入http://hostname:8080,通过界面注册用户(需要几个注册几个)

登录后重新进入Configure

Global Security,进入配置界面

Jenkins环境搭建及使用_第20张图片
全局配置

去除“允许用户注册”阻止任何用户注册

授权策略选择“安全矩阵”,便可以对不同的用户设置不同的权限了。

3  解决结果

以上介绍了一些常用的功能,还有jenkins支持的众多插件没介绍,以及更多的运用场景没介绍,希望有兴趣的同学可以自行研究。

你可能感兴趣的:(Jenkins环境搭建及使用)