您的位置:首页 > 其它

Jenkins——应用篇——安装&配置

2016-04-12 16:59 253 查看
本文是jenkins应用系统文章的一部分,大部分来自工作和学习中的实践,部分内容来自官方文档和网友的文章,使用的版本为1.585和1.653,引用的文章会在“参考资料”部分附上原始链接,如无意中侵犯您的权利,请联系QQ:46106962,如需要进一步的交流请加入QQ群:(Jenkins学习交流)469536515。转载和使用请注明出处。

依赖环境

JDK,Jenkins使用JAVA语言编写,需要JAVA语言的运行环境,jdk建议使用1.7+,本文使用jdk1.8
web容器,本质上Jenkins是由JAVA语言开发的web应用,需要在web容器中运行,本文会逐渐介绍在各种容器下如何部署、运行Jenkins,但运行Jenkins容器不是必须的。
在系统中增加用户,本文中的用户为jenkins,在本文中如不特别指明,所有操作都将使用这个用户,所有目录都为/home/jenkins的相对目录。这步不是必须的,只是基于操作方便和良好的使用习惯。
下载jenkins的war包,本文使用的为Jenkins 1.653,可以到群469536515的群文件中下载(由于本人只能上传60M以内的文件,不能将下载好的包上传到csdn)。

安装&运行

Jenkins本身由JAVA语言开发的web应用程序,通过war包发布,所以最便捷的方式就是通过war进行安装(严格来说不算安装,说部署更合适)。当然Jenkins也提供了针对不同平台的安装包,如windows的安装文件、ubuntu的安装包等等,但不建议使用定制的安装程序进行安装,最直接的理由就是学习成本比较高和可控性不好,所以本文将介绍如何使用war包安装、运行。

使用war包安装

Jenkins可以直接使用java -jar jenkins.war来运行,前题是JAVA的环境变量要进行正确设置,如何设置请问“度娘”,命令要在jenkins.war所在路径下执行,否则要加上jenkins.war所在目录的相对或绝对路径。

前文提到Jenkins的运行需要依赖jdk和web容器,这里怎么又说可以直接运行呢?这是个好问题,产生这种神奇现象的奥秘在于Jenkins内置了Jetty,而Jetty就是我们要的web容器。

使用Tomcat安装

首先从Tomcat官方网站或其他渠道下载Tomcat,本文用的版本是7.0.63绿色版,下载地址为:apache-tomcat-7.0.63

解压Tomcat安装包,设置环境变量JAVA_HOME,设置方式参考“设置环境变量”一节,关于Tomcat更多的配置请自行找“度娘”解决,如:端口、字符集等。配置好后将下载好的war包改名为jenkins.war并放到Tomcat的webapps下,一切就绪后启动Tomcat,在浏览器中输入http://172.16.17.189:8080/jenkins看安装效果(172.16.17.189是在我的环境中使用的ip,8080也是我的环境中使用的端口,请根据自己的情况修改后使用)。

配置

列出的配置为“系统管理(Manage Jenkins)>系统设置(Configure System)”中的内容,与特定的插件相关内容将在插件使用中说明。

主目录(Home directory)

Jenkins存放数据的目录,如:Jenkins自身的配置文件、默认的工作空间(之所以说是默认工作空间是因为Job的工作空间在Job设置中可以特别指定,与默认工作空间可以不同)。默认主目录为${user_home}/.jenkins,在Jenkins启动前可以通过设置修改,设置途径如下:
设置系统环境变量JENKINS_HOME,如:JENKINS_HOME=/data/jenkins,设置方式参考“设置环境变量”一节

在WEB容器启动前设置应用级的环境变量JENKINS_HOME

这种方式是我在实际使用中推荐的一种方式,在同一台机器上部署多个需要不同配置的应用时很灵活,通常我会为每个应用提供一个env.sh文件,可能的内容如下:

JAVA_HOME=/usr/java/jdk1.6.0_14/

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME PATH

##Jenkins

JENKINS_HOME=/data/jenkins

export JENKINS_HOME

## for linux

LANG=zh.UTF-8

export LANG

下面以Tomcat和Resin为例说明如何使用
Tomcat

在tomcat中可以直接修改bin/catalina.sh文件,在文件第二行开始添加环境变量或在文件的注释结束后增加,如增加:

JENKINS_HOME=/data/jenkins或是“. ../../env.sh”,env.sh的路径根据与catalina.sh的相对路径修改。

Resin

编写resin的启动脚本,脚本比较简单主要作用理设置环境变量,调用resin提供的启动命令启动resin,内容如下:

#!/bin/sh

##应用所在目录

cd /data/xxx_adcenter 

. ./env.sh

sh $RESIN_HOME/bin/resin.sh $1

修改jenkins.war中的web.xml文件,设置HUDSON_HOME,内容如下:

<env-entry>

    <env-entry-name>HUDSON_HOME</env-entry-name>

    <env-entry-type>java.lang.String</env-entry-type>

    <env-entry-value>/data/jenkins</env-entry-value>

</env-entry>

这种方式需要修改Jenkins发行包的文件不便于后续升级,不建议使用。

工作空间根目录(Workspace Root Directory)

Job的工作空间,可使用的环境变量有:JENKINS_HOME、ITEM_ROOTDIR、ITEM_FULLNAME。默认值在不同版本的Jenkins中可能不同,如:Jenkins-1.585中为${JENKINS_HOME}/workspace/${ITEM_FULLNAME},Jenkins-1.653中为${ITEM_ROOTDIR}/workspace。
ITEM_ROOTDIR:代表${JENKINS_HOME}/jobs/${ITEM_FULLNAME}/
ITEM_FULLNAME:job名字
构建记录根目录(Build Record Root Directory)

可使用的变量如“工作空间根目录”,默认值为${ITEM_ROOTDIR}/builds。
注:“工作空间根目录”和“构建记录根目录”都可以设置为独立于JENKINS_HOME之外的目录,以提高效率和可用性,但至少要包含${ITEM_FULLNAME}变量。如:/ssd/jobs/${ITEM_FULLNAME},/ssd为挂载的SSD硬盘,这样可以提升构建效率。
用法(Usage)

控制如何在节点上安装构建,从节点(slave)上也有这个设置,包含两个选项:
尽可能的使用这个节点(Utilize this node as much as possible):

这是默认设置,在这种模式下,当有一个可以在这个节点上运行的构建时,Jenkins将使用这个节点进行构建。在实际使用中建议将主节点(master)设置为这种模式,从节点设置为“只允许运行绑定到这个节点的JOB运行”,这样可以避免从节点出现故障时导致的Job无法运行的情况发生。
只允许运行绑定到这个节点的JOB(Only build jobs with label restrictions matching this node):

在这个模式下,Jenkins只运行指定在此节点运行的Job。在Job设置的“Restrict where this project can be run”中指定可运行Job的节点,关于如何指定节点的高级特性在Job设置中介绍。

设置环境变量

这里关于设置环境变量的内容主要是根据使用Jenkins的需要而写,并稍有扩展,如需更详细了解相关内容请自行查找更有针对性的资料。

Linux

linux中可以通过以下两种方式设置永久的环境变量,区别在于/etc/profile中设置的是系统级的,${user_home}/.bash_profile只对特定用户生效,在实际使用中不建议使用这两种方式,原因是可用范围太大,不够灵活。
在/etc/profile中设置,在文件末尾增加如下内容

JENKINS_HOME=/home/jenkins/jenkins_home

export JENKINS_HOME

保存文件后执行source /etc/profile使设置生效,如遇到不生效的情况退出客户端口重新登录。
在${user_home}/.bash_profile中设置,增加内容和操作如上

Windows
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: