Jenkins 的前身是 Hudson,它是基于 Java 开发的一种持续集成(Continuous Integration,简称 CI)开源工具。用于持续交付、自动构建、测试、发布和监控等,无需过多的人工干预,利于提高开发的效率。

1. 安装

Jenkins 官网下载安装包 jenkins-2.60.3-1.1.noarch.rpm。Jenkins 2.54 或以上的版本需要 JDK 8 或以上的版本作为运行时环境。如果你系统环境的 JDK 版本低于 8,请选用低于 2.54 的 Jenkins 安装包。

1
# rpm -ivh jenkins-2.60.3-1.1.noarch.rpm
目录 描述
/usr/lib/jenkins/ war 包目录
/var/lib/jenkins/ 默认的 JENKINS_HOME 目录
/var/log/jenkins/ 日志文件目录
/etc/sysconfig/jenkins 配置文件

1.1 JDK 配置

1
# vi /etc/init.d/jenkins

在 66 行附近找到 candidates 的配置:

1
2
3
4
5
6
7
8
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
"

将你机器的 JDK 安装目录下的 /bin/java 文件的路径添加到第一行,其余行也可以删掉:

1
2
3
candidates="
/usr/local/jdk1.8.0_144/bin/java
"

1.2 端口配置(可选):

1
# vi /etc/sysconfig/jenkins

在 56 行,默认端口是 8080,可自行修改:

1
JENKINS_PORT="8888"

1.3 用户配置

Jenkins 安装时默认创建了一个名为 jenkins 的用户,为避免 Jenkins 运行时没有操作其他文件的权限,可修改为其他权限用户,比如 root:

1
# vi /etc/sysconfig/jenkins

在 29 行:

1
2
3
4
5
6
7
8
9
## Type: string
## Default: "jenkins"
## ServiceRestart: jenkins
#
# Unix user account that runs the Jenkins daemon
# Be careful when you change this, as you need to update
# permissions of $JENKINS_HOME and /var/log/jenkins.
#
JENKINS_USER="root"

1.4 命令行

启动:

1
service jenkins start

停止:

1
service jenkins stop

重启:

1
service jenkins restart

1.5 启动应用

第一次使用 Jenkins 时,它会自动生成一个随机的口令。你需要输入正确的口令才能进入系统。

1
$ cat /var/lib/jenkins/secrets/initialAdminPassword

复制并粘贴口令进入到安装界面:

选择第一项Install suggested plugins,等待安装完成。待安装完成之后,创建管理员账户:

至此,安装完成。

2. 应用配置

2.1 JDK 配置

系统管理 -> Global Tool Configuration

2.2 Maven 配置

系统管理 -> Global Tool Configuration

2.3 SVN 账户配置

Credentials -> global -> Add Credentials

2.4 GIT 账户配置

Credentials -> global -> Add Credentials

2.5 Maven 集成插件

系统管理 -> 管理插件 -> Maven Integration plugin

2.6 发布插件

系统管理 -> 管理插件 -> Deploy to container Plugin

3. 创建任务

4. 任务配置

附 Shell 脚本源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/bash
# 必须, 否则Tomcat无法启动
export BUILD_ID=anything
# 应用部署到的Tomcat的路径, 不同项目只需改变此参数即可
app_tomcat_path=/home/fanlychie/application/helloworld-demo-tomcat
# 工作区间
workspace=$WORKSPACE
# 应用的名称
app_final_name=${workspace##*/}
# 应用Tomcat的名称, 用于查杀进程
app_tomcat_name=${app_tomcat_path##*/}
# 应用包备份的目录
app_backup_path=$app_tomcat_path/backup
# 应用包备份的路径
app_backup_pathname=$app_backup_path/`echo | awk '{print strftime("%Y-%m-%d-%H-%M-%S")}'`
# 应用Tomcat的进程ID
app_tomcat_process_id=`ps -ef | grep $app_tomcat_name | grep -v grep | awk '{print $2}'`
# 杀掉进程
if [ $app_tomcat_process_id != "" ]; then
kill -9 $app_tomcat_process_id
fi
# 创建备份目录
if [ ! -d $app_backup_path ]; then
mkdir $app_backup_path
fi
# 创建备份路径
mkdir $app_backup_pathname
# 备份应用
cp -r $app_tomcat_path/webapps/ROOT $app_backup_pathname
# 清空目录
rm -rf $app_tomcat_path/webapps/ROOT/*
# 拷贝应用包
cp -f ${workspace}/target/*.war ${app_tomcat_path}/webapps/ROOT
# 进入ROOT目录
cd ${app_tomcat_path}/webapps/ROOT
# 解压缩应用包
jar xvf *.war
# 删除应用包
rm -f *.war
# 启动应用Tomcat服务
${app_tomcat_path}/bin/startup.sh

5. 用户管理

系统管理 -> Configure Global Security

系统管理 -> 管理用户 -> 新建用户

用户新建完成后再到系统管理 -> Configure Global Security添加用户并配置权限。

环境:Java-8、Maven-3、Tomcat-8、Jenkins-2.60.3、Centos-6