jenkins使用手册.docx
《jenkins使用手册.docx》由会员分享,可在线阅读,更多相关《jenkins使用手册.docx(18页珍藏版)》请在冰豆网上搜索。
jenkins使用手册
Jenkins
操作手册
第一章概述篇
持续集成(CI)是一种实践,旨在缓和和稳固软件的构建过程。
持续集成最早由MartinFowler于10年前已经提出,希望通过持续集成能够实现以下过程:
△任何人在任何地点,任何时间可以构建整个项目。
△在持续集成构建过程中,每一个单元测试都必须被执行。
△在持续集成构建过程中,每一个单元测试都必须通过。
△持续集成构建的结果是可以发布的软件包。
△当以上任何一点不能满足时,整个团队的主要任务就是去解决这个问题。
Jenkins是一个软件界非常流行的开源CI服务器,下面介绍从基础篇、提高篇两个层面进行介绍。
第二章基础篇
2.1Jenkins安装
2.1.1资源下载
首先从http:
//Jenkins-ci.org/下载最新的Jenkins版本,最新版本为1.383,下载的文件载体为Jenkins.war;
2.1.2运行Jenkins的前提
2.1.2.1环境变量的设置:
1)JAVA_HOME,设置JDK的安装目录,建议采用JDK5
2)ANT_HOME,设置Ant的目录,建议采用ant最新版本1.8
3)JENKINS_HOME,设置Jenkins的配置文件目录,默认为用户的目录,建议为Jenkins的安装目录,便于控制;
4)PATH,需要将java、ant的目录配置到path目录下;
5)CLASSPATH,需要将JDK的tools.jar配置到classpath目录中;
2.1.2.2其他外部条件
1)需要WebLogic923的远程控制的jar文件,文件有weblogic_sp.jar、weblogic.jar、webservices.jar三个jar文件,这三个文件位于WebLogic安装目录的相对目录server\lib下;
将上述三个jar配置到系统的CLASSPATH环境变量中;
2.1.3Jenkins启动
Jenkins可以有两种方法进行运行Jenkins;
1)直接通过命令行
转到Jenkins.war所在的目录,当前为D:
\Jenkins
java-jarJenkins.war--httpPort=8080–prefix=Jenkins
说明:
httpPort为Jenkins运行的端口,默认端口为8080,上述命令其实Jenkins运行在Winstone容器中;
2)在Web容器中运行
Jenkins可以运行在标准的Web服务器中,支持Tomcat、Jboss、WebLogic中,只需要将Jenkins.war放置到相应目录,启动服务就可以进行访问;
2.1.4Jenkins访问
验证Jenkins是否运行正常,通过访问http:
//hostIP:
port/Jenkins即可。
我的jenkins路径:
http:
//192.168.8.26:
8080/
Hudosn应用支持IE、FireFox等浏览器。
2.2Jenkins基本设置
Jenkins的基本设置都在系统的后台设置中,具体路径为:
系统管理->系统管理
2.2.1设置JDK
可以在这里进行JAVA_HOME设置,假如已经系统已经设置JAVA_HOME,可以不需要再进行配置,同时可以让Jenkins再安装一个JDK。
2.2.2设置ANT
可以在这里进行ANT_HOME设置,假如系统已经设置了ANT_HOME,可以不需要再进行配置,同时可以让Jenkins安装一个最新的ANT。
备注:
为了让配置更加简单,建议在系统级设置JAVA_HOME和ANT_HOME,便于系统的迁移。
2.2.3配置邮件信息
系统能够在执行计划完成后发送结果邮件,需要配置邮件服务器的相关信息:
上面还需要配置Jenkins的URL地址,作为后期访问地址,一旦设定URL,就不要轻易修改。
左边显示的可过滤的条件及属于当前用户的BUG
2.3创建任务
在Jenkins主菜单点击“新建任务”,出现下图:
键入任务名称,选择“Buildafree-stylesoftwareproject”选项,点击“OK”按钮后,出现下面的界面:
说明:
1)Projectname:
项目(任务)名称,项目(任务)名称不能重复,后面通称任务;
2)Description:
项目描述,主要对任务进行简要说明;
3)Discardoldbuilds:
是否保留过去的构建,默认是保留。
(帮助:
这里控制着您想要在Jenkins所在的磁盘把构建记录存储的有效期(诸如控制台输出、编译构件等等)。
Jenkins为此提供了两个标准:
①时间驱动。
在Jenkins中您可以判断如果达到一定时限来删除一条记录(例如,七天前)。
②数量驱动。
在Jenkins中您可以确保它拥有N份构建。
如果又有新的构建开始,最早的那份(记录)就将被删除。
Jenkins也可以让您建立的个别构建定义为'永远保持这个记录',以便防止某些重要的构建被自动丢弃。
4)Thisbuildisparameterized:
如果选择此选项,Jenkins将允许您提供一套任意的键值对参数,它们会被传递到构建过程里。
配置的参数往往是构建运行环境中的一些环境变量。
(帮助:
当您使用了Jenkins的各种自动化,有时要求在构建过程中提供一组用户的输入,使用“parameterize”就能够更方便构建。
例如,您可能会设立一个按需测试,在那里用户可以提交一个二进制文件的压缩文件来进行测试。
5)DisableBuild:
禁止此任务进行构建,默认是不禁止;
6)Executeconcurrentbuildsifnecessary(beta):
7)AdvancedProjectOptions
①Quiteperiod:
构建前等待时间;
②RetryCount:
从SCM仓库中取出尝试时间;
③Blockbuildwhenupstreamprojectisbuilding:
假如上一个仍在构建过程中,停止本次构建任务;
④Usecustomworkspace:
指定当前任务的workspace,否则默认为JENKINS_HOME的工作目录
8)SourceCodeManagement:
指定编译源代码的获取方式:
①None:
手动方式;
②CVS:
从CVS仓库中获取;
备注:
CVS通过Module(s)获取多个项目工程
③SVN:
从SVN仓库中获取;
备注:
SVN通过“Addmorelocations”来添加多个工程,在SVN的URL中需要添加用户名密码信息,例如:
svn:
//username:
passwd@192.168.1.15/SKELETON-V2.0/trunk/program/source/skeletonCommon
9)BuildsTriggers:
设置构建触发器
①Buildafterotherprojectsarebuilt:
设置构建的流水线,配置在设置的任务构建完成后自动构建此任务,进行设置后,可以在任务统揽中看到以下“下游项目说明”
②Triggerbuildsremotely(e.g.,fromscripts):
设置远程触发进行任务构建;
③Buildperiodically:
设置构建频率,设置跟QuartzCronTrigger设置雷同;
④PollSCM:
设置从SCM库中检查源代码是否更新:
备注:
关于第三和第四两点,基本配置为
分钟小时天月星期
举例:
每分钟进行集成*****,每5分钟进行集成5****,每天12点和23整点进行集成012,23***
10)BuildEnvironment:
设置构建环境设置
①ToolEnvironment:
设置工具的环境变量;
②Createaformattedversionnumber:
设置构建的版本号
11)Build:
执行构建
构建支持6种方式,shell(运行于Linux环境)、Maven(支持Maven编译)、Command(windows批处理命令)、Ant、EasyAnt、Exportjobruntimeparameters。
举例:
Ant:
备注:
Targets主要是执行ant脚本中哪几个部分,可以添加多个;
BuildFile:
需要指定Ant脚本的物理位置;
Properties:
添加Ant指定的属性;
JavaOptions:
设置运行java时的属性,例如内存、堆大小等;
Command
备注:
执行Windows的批处理命令,这里不能利用Hodson设置的变量;
12)Post-buildActions
①PublishJavadoc:
设置构建时产生JavaDoc时的文件目录;
②Archivetheartifacts:
设置构建后哪些文件需要进行归档处理;
③E-mailNotification:
邮件提醒
备注:
可以向多个人发送邮件,通过“;”进行分割
④StatusMonitor:
构建状态监控;
:
),好,基本的配置到这里结束,可以搭建一个新的任务进行构建了;
2.4运行并监控构建作业
2.4.1主控制面板
当配置完成一个任务后,回到主控制面板:
△上图中右边列表列举现在已经配置的任务已经任务当前的状态
△左边有构建队列,当有构件时,会把当前正在构建的队列在上面进行列举;
△上图右下角有RSS订阅,支持订阅全部、失败和最后一次等;
2.4.2手动构建一个任务
当一个任务配置完成后,可以采用手动构建和触发器构建两种方式,在项目验证阶段,可以通过手动触发方式,点击任务区的“立即构建”,会在BuildHistory中出现以下进度条:
点击进度条,可以进入到具体的编译过程,例如下图:
等构建完毕后,你可以看到最新任务构建的结果图:
浏览任务的整体运行状况入下图:
最左边列图示为最后一次构建状态,第二列图示为整个任务的构建总体结果,具体如下表示,下图也只截取部分:
2.4.3任务构建状态
Jenkins通过当前构建状态和构建稳定新
当前构建状态分为以下几种
项目构建完成,同时被认为是稳定的
项目构建完成,但被认定为不稳定
构建失败
作业已经禁止
构建稳定行,Jenkins会基于一些后处理器任务为构建发布一个稳健指数(从0-100),越高越稳定
构建成功率>80%
构建成功率60%-79%
构建成功率40%-59%
构建成功率20%-39%
构建成功率0-19%
期待任务编译都处于
和
状态。
第三章提高篇
3.1插件管理:
由Jenkins类库现有的Jenkins功能性扩展和开发者们为Jenkins提供的新功能都可以称之为Jenkins插件。
Jenkins将插件分为ArtifactUploaders、AuthenticationandUserManagement、BuildNotifiers、BuildReports、BuildTools、BuildTriggers、BuildWrappers、ClusterManagementandDistributedBuild、CommandLineInterface、ExternalSite/ToolIntegrations、Maven、Miscellaneous、OtherPost-BuildActions、PageDecorators、SlaveLaunchersandControllers、SourceCodeManagement、UserInterface等17个插件大类。
1)ArtifactUploaders:
协助把构建结果发布到一些网络终端上,例如FTP服务器、Tomcat应用服务器、J版本库等等;
2)AuthenticationandUserManagement:
Hodson基本包不提供用户权限管理,通过此插件,融入LDAP、MySql等权限管理插件,丰富权限管理;
3)BuildNotifiers:
任务构建完成后发布通知的方式,支持Twitter、IRC、Google日历等;
4)BuildReports:
主要针对构建的源代码进行分析的报表,例如FindBugs、Checkstyle等等,
5)BuildTriggers:
构建事件监听并触发构建的插件,例如通过URL改变进行触发编译;
6)BuildTools:
实现额外构建工具的插件,例如RubyPlugin、GrailsPlugin等;
7)BuildWrappers:
8)ClusterManagementandDistributedBuild:
9)CommandLineInterface:
10)ExternalSite/ToolIntegrations:
11)Maven:
12)Miscellaneous:
13)OtherPost-BuildActions:
14)PageDecorators:
15)SlaveLaunchersandControllers:
16)SourceCodeManagement:
17)UserInterface:
备注:
所有的插件安装完毕后,必须重启Jenkins才能使插件生效,不支持即插即用模式。
具体插件使用说明:
3.1.1FindBugs插件设置
1)下载FindBugs,并解压到相应的目录,将findbugs-ant.jar拷贝ANT_HOME\lib目录下;
2)设置FINDBUGS_HOME目录为解压目录;
3)Build.xml文件中配置FindBugs配置:
①设置findBugs在build.xml中的路径
—设置环境变量定义-->
—定义findbugs.home路径-->
②声明Findbugs任务
③创建FindBugs任务,例如:
output="xml:
withMessages"outputFile="findbugs.xml">
④Eclipse中配置Findbugs
选择Eclipse->Windows-Perference,对ant进行编辑,选择Runtime
配置findbugs-ant.jar到Classpath目录下下,可以通过选择“AddExternalJARS”;
对Tasks进行配置,增加一个Task,命名为findbugs,选择Location为添加的findbugs-ant.jar的物理位置,并指定具体为哪个类,如下图:
⑤在Jenkins中设置Findbugs
选择需要配置任务进行配置,勾选其中findbugs选项,如下图:
⑥编译成功后,fingbugs的结果和趋势图
可以点击具体的链接进行分析findbugs的认定结果和具体的代码,趋势图
3.1.2Ftp插件配置
1)在系统的插件管理中下载FTP插件;
2)在系统管理中配置FTP服务器的相关信息,如下图:
在选定的任务中配置FTP
在这里选择需要上传的FTP服务器,并指定源文件和目的地址。
3.1.3Junit插件
3.1.4通过远程访问触发
Jenkins支持远程触发方式进行构建,具体设置在当前任务的设置中,如下图:
用户通过访问上面的URL就可以进行相应的构建。
3.1.5WebLogic.Deployer
WebLogicServer提供以下四种方式来帮助你配置和部署应用系统:
2Weblogic.Deployer
②管理控制台
③WLST
△Weblogic.Deployer
weblogic.Deployer提供基于命令行的界面来执行基本和高级部署任务。
当希望命令行访问WebLogicServer部署功能时,或者当需要使用管理控制台执行不受支持的部署任务时,使用weblogic.Deployer。
△管理控制台
管理控制台提供一系列基于Web的部署助手,这些助手可以指导您完成部署过程。
管理控制台还提供控件可用于更改和监视部署状态、在部署设备启动并运行时更改所选的部署描述符值。
当需要以交互方式执行基本部署功能并且可以访问受支持的浏览器时,请使用管理控制台。
△WLST
WebLogic脚本工具(WLST)是新的命令行界面,可用于使域配置任务(包括应用程序部署配置和部署操作)自动化。
为了实现系统的自动部署,可以采用WebLogic.Deployer和WLST两种方式进行,但由于持续集成环境和WebLogicServer在物理位置上差异,最终选择采用WebLogic.Deployer作为持续继承发布到WebLogicServer方式。
下面对其进行基本操作介绍。
WebLogic.Deployer部署采用java命令方式进行部署,务必需要把基础篇中3个WebLogic相关的jar放到CLASSPATH中或则在启动命令行中添加-classpath命令参数。
下面简单说明几个最常用的WebLogic.Deployer的命令:
△部署或重新部署应用程序或模块
javaweblogic.Deployer-adminurlt3:
//192.168.180.3:
7001-usernameusername-passwordpassword-deploy-targetstarget_list-upload-namedeployment_name
△停止部署单元并从目标服务器中删除临时文件
javaweblogic.Deployer-adminurlt3:
//192.168.180.3:
7001-usernameusername-passwordpassword-undeploy-targetstarget_list-namedeployment_name
详细命令说明:
命令或选项
说明
-usernameusername
管理员用户名。
如果提供-username选项但不提供对应的-password选项,则weblogic.Deployer会提示您输入密码。
-passwordpassword
管理员用户密码。
-targetstarget_list
在其上分发和部署应用程序或模块的目标。
target_list参数是以逗号分隔的目标服务器、群集或虚拟主机的列表。
-upload
将指定的部署文件(包括部署计划或备用部署描述符)传输到管理服务器。
[需要发布的war或ear包的路径]
-namedeployment_name
要分配给新部署的应用程序或独立模块的部署名称,可选。
详细可以参考:
3.2安全篇
Jenkins安装完成后,默认是不进行安全控制的,需要在系统配置中添加安全控制后,具体位置在系统管理的安全域中,Jenkins支持Jenkins专用用户数据库、LDAP、Servlet容器代理、MySql数据库。
授权策略包括采用安全矩阵、登陆后可以做任何事、任何用户可以做任何事(没有任何限制)、项目矩阵授权策略、遗留模式等。
建议采用Jenkins专用数据库,安全策略采用安全矩阵方式,已经能够基本满足现有的模式。
如下图:
选择Jenkins专用用户数据库后,勾选允许用户注册选项。
在添加用户或组,对其进行附权限。
用户注册在首页的右上角,如下图
点击注册后,出现如下图:
添加用户的基本信息,点击注册按钮后,用户注册完成,用户没有赋权限,登陆后的界面如下:
备注:
对用户先赋权限或先注册再赋权限没有先后顺序。
3.3个性化设置
Jenkins对用户视图支持个性化定制,保证登陆用户只关注自身关注的项目视图,用户登陆后,默认一般显示如下图:
可以点击“+”增加个性化视图,出现如下视图:
选择ListView选项,填写“Viewname”,以及需要的任务选项,同时可以选择需要展示的列,选择完成后保存即可,可以在首页上显示。
用户登陆后,可以选择“PersonalView”或“MyViews”查看个性化