Jenkins安装

1. Jenkins 搭建

  • 先安装好相关软件(Jenkins服务会用到):JDK 8+Maven 3+Git

  • 通过下载获取到Jenkins的war包或通过命令获取:wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

  • 执行命令通过后台启动 Jenkins:nohup /opt/jdk1.8.0_291/bin/java -Dfile.encoding=utf-8 -jar /opt/jenkins.war --httpPort=8080 &

  • 启动后使用命令:tail -f nohup.out 查看启动日志。如果看到如下日志,说明启动成功:

1
2
3
4
5
6
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

e24a2134060f4604b45708904a4f7a25

This may also be found at: /Users/yunai/.jenkins/secrets/initialAdminPassword

默认情况下,Jenkins 内置一个管理员用户。其用户名为 admin,密码随机生成。这里,我们可以看到一串 e24a2134060f4604b45708904a4f7a25 就是密码。

2. Jenkins 配置

  • 登录Jenkins的登录地址,便可以看到入门解锁页面,输入刚刚日志中查到的密码

  • 点击安装推荐的插件,等待插件下载完成

  • 配置用户相关信息(账号、密码、电子邮件等)

  • 配置Jenkins URL 地址,点击保存并完成

  • 安装一些额外的插件,进入插件管理(Manage Jenkins -> Manage Plugins)安装插件:Maven IntegrationMaven InfoPublish Over SSH Extended Choice ParameterGit Parameter (安装完成后记得重启)

  • JDK 配置:进入全局配置(Manage Jenkins -> Global Tool Configuration),配置好JDK路径

  • Maven 配置:进入全局配置(Manage Jenkins -> Global Tool Configuration),配置好Maven路径


Jenkins上部署项目

  • 新建一个Maven项目
  • 勾选丢弃旧的构建(策略为默认,保持构建天数和保持构建最大个数可自定义)
  • 勾选参数化构建过程(名称设置为:BRANCH ,描述选填,参数类型选分支或标签,默认值为你要部署的项目分支名 )
  • 源码管理选中Git(填好仓库路径以及Git的账号密码,填写对应要部署的项目分支名:*/master)
  • 设置构建环境的Build(Root POM 默认就行,Goals and options 设置为构建整个项目:clean package -Dmaven.test.skip=true)
  • 设置 Post Steps 为 Run only if build succeeds ,执行 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
#!/bin/sh

echo "开始执行shell脚本"

# 在jenkins环境中一定要加这句话,否则这个脚本进程最后会被杀死
export BUILD_ID=dontKillMe

# 指定最后编译好的jar的存放位置
JAR_PATH=/opt/workspace/appserver

# 如果路径不存在,就创建路径
[ ! -e $JAR_PATH ] && mkdir -p $JAR_PATH

# 指定jenkins中存放编译好的jar的位置
JENKINS_JAR_PATH=/root/.jenkins/workspace/imxt-nav/target

# 如果路径不存在,就创建路径
[ ! -e $JENKINS_JAR_PATH ] && mkdir -p $JENKINS_JAR_PATH

# 指定jenkins中存放编译好的jar的名称(这个jar的名字和pom文件配置有关)
JENKINS_JAR_NAME=imxt-nav-1.0.jar

# 获取该项目的进程号,用于重新部署项目前杀死进程
process_id=$(ps -ef | grep imxt-nav-1.0.jar | grep -v "grep" | awk '{print $2}')

# 如果该项目正在运行,就杀死项目进程
if [[ ! -z "$process_id" ]]
then
echo "停止服务"
kill -9 $process_id
else
echo "服务未启动"
fi

# 进入Jenkins中编译好的jar的位置
cd ${JENKINS_JAR_PATH}

# 将Jenkins中编译好的jar复制到最终存放项目jar的位置
cp $JENKINS_JAR_PATH/$JENKINS_JAR_NAME $JAR_PATH

# 进入到存放项目jar的位置
cd ${JAR_PATH}

# 后台启动项目,并且将控制台日志输出到nohup.out中
nohup java -jar ${JENKINS_JAR_NAME} --server.port=9000 -Dfile.encoding=UTF-8 >nohup.out &

echo "shell脚本执行完毕"

相关资料查阅:

芋道 Jenkins 极简入门