2-1.jenkins部署-自由风格方式

  • 项目摘要:
  1. 需要一台linux虚拟机环境(本文是基于centerOS7),本内容基于文档http://www.javashuo.com/article/p-bzlkikpb-pd.html为基点。
  2. 本文档软件版本:
  1. git :1.8.3.1  
  2. jdk 1.8.0
  3. Jenkins 2.222.3
  1. 小提示:经检测,上文的源码里关于pom.xml配置稍有问题,在本文源码下载已修正。
  2. 本文档仅是一个入门案例。
  • 项目具体实施:
  1. 安装git
  2. 安装jdk

首先卸载自带jdk

yum remove *openjdk*

  1. 安装mysql

https://www.runoob.com/mysql/mysql-install.html

  1. 安装maven

首先卸载本地自带maven

# rm -rf /etc/maven

# rm -rf /usr/share/maven

有时候还会报错,将报错地址删除即可。

# wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

# tar -xf apache-maven-3.6.3-bin.tar.gz

mv apache-maven-3.6.3 /usr/local

vim /etc/profile

加入:

export  MAVEN_HONE=/usr/local/apache-maven-3.6.3

export  PATH=...:${MAVEN_HONE}/bin:$PATH

#source /etc/profile

# mvn -v   

执行成功则maven安装成功

  1. 安装jenkins
    1. 进入网站:https://pkg.jenkins.io/redhat-stable/
    2. sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
    3. sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
    4. yum install jenkins
    5. systemctl start jenkins
    6. 浏览器输入http://ip:8080
    7. cd /var/lib/jenkins/secrets
    8. cat initialAdminPassword
  2. 操作:

  1. 选择推荐的安装
  2. 配置全局工具(JDK、git、maven)
 
 


击系统管理,选择全局工具配置,配置jdk。

配置git,不知道git地址可以执行下面这条命令查找,

# which git

 
 

 

maven配置

 
 

 

保存即可。

  1. 点击新建任务,选择构建一个自由风格的软件项目,任务名称为:springboot-demo-freestyle,点击确定。
 
 


配置General

  1. 配置源码管理
  2. 这里要注意,前提是ssh已生成,并且已经设置到GitHub可以拉取成功代码。

 
 

 


此时可以构建一下项目,观察时候构建成功。然后再进行下一步操作。

  1. 配置构建环境(构建触发器放到后面)

配置构建过程

<1>配置maven

   目标: clean install -Dmaven.test.skip=true  (截图有一点错误,install中间要有空格)


这里选择maven(自己配置的maven),不选择默认

可以执行cd /var/lib/jenkins/workspace观察自己项目的路径来配置。如果是../构建项目名/pom.xml,则这里直接配置pom.xml即可。如果里面是自己的项目名.../pom.xml,则这里的地址从自己项目名这一步开始,直到pom.xml,这一步很容易出错。

这里也可以构建一次测试是否成功。

<2> 配置maven执行前


在“增加构建步骤”中选择“执行shell”,并将其挪至maven上面。

源码如下(项目名要改成自己的):

echo "Stopping SpringBoot Application"

pid=`ps -ef | grep user-service-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`

if [ -n "$pid" ]

then

   kill -9 $pid

fi

<3>配置maven执行后

和上面一样,继续添加一个shell面板,加入如下代码:

#!/bin/bash -ile

project=user-service-0.0.1-SNAPSHOT.jar  #这里需要替换成你jar包的名字

pathName=springboot-demo-freestyle/user-service      #这里也替换成你的,每个人不一样

echo "拷贝文件"

rm -rf /usr/local/src/java/$project   #删除旧的war包    (这是我的war路径,可以改成你的war包路径)

cp  /var/lib/jenkins/workspace/$pathName/target/$project /usr/local/src/java/ #因为jenkins打包自动放在它自己的目录下,我就cp复制到了我定义的目录下  /usr/local/src/java/ 下

echo "切换路径"

cd /usr/local/src/java/

pid=`ps -ef | grep $project | grep -v grep | awk '{print $2}'`  #杀掉原有项目进程

if [ -n "$pid" ]

then

   kill -9 $pid

   echo "杀死存在进程"

fi

BUILD_ID=dontKillMe

echo "执行"

nohup java -jar $project &   #启动进程

echo "启动成功!"

这个时候,再构建一次项目,如果都没问题,可以在命令行检查项目运行情况,可以使用curl命令执行一下是否可以正常访问,再浏览器尝试访问。

端口使用情况命令:

# netstat -ntulp |grep 端口号

# lsof -i: 端口号

  1. 添加QQ邮件发送

 <1>选择系统配置

 
 

<2> 配置Jenkins Location

<3>配置Extended E-mail Notification

首先需要去QQ邮箱开启发送功能,这部分参照QQ邮箱教程。

 
   

 

 
   


<4>配置邮件通知

 
   


<5> 保存切换到项目配置,在构建后操作选择增加构建后操作步骤,选择Editable Email Notification,如下配置:


至此,邮件配置完毕。如果要发送到slack比较简单,但是slack配置有一点要注意,测试连接前先保存,否则测试不成功。

  1. 添加构建触发器

这里使用了jenkins+gitHub方式,这种方式要求jenkins所在服务器一定要有公网ip,这一点要注意。

<1>在github网站配置webhooks

 
 

 

 
 

 

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<2>生成Personal access tokens

选择github的setting,然后选择Developer settings,接着选择Personal access tokens,点击Generate new token,配置如下:

将生成的token复制保存好。

<3>配置jenkins

在系统配置里添加git服务器


有时候测试连接不一定可以成功,可以暂时忽略这个错误,继续后续操作。

 
 

<4>在自己的创建项目配置中的构建触发器中选择“GitHub hook trigger for GITScm polling,有时候会有警告,这个问题暂时没找到怎么解决,但是它不影响触发事件。

 
 

<5>配置构建环境

 
 

此时,可以随便改几行代码,然后更新到gitHub,测试触发器是否触发项目构建。

  1. 添加参数化构建过程(略)

这里涉及到一个插件:Extended Choice Parameter

  1. 添加git参数化(略)

这里涉及到一个插件:Git Parameter

  • 参考链接:
  1. jenkins中springboot项目脚本: http://www.javashuo.com/article/p-quuoimry-vd.html
  2. Jenkins中邮件通知:

https://www.cnblogs.com/cmnz/p/9356282.html

  1. Jenkins+GitHub构建触发器:

http://www.javashuo.com/article/p-ecttlyra-bh.html

本内容源码及文档下载地址(除了源码,文档和本文一致,源码是2.1基础上改了一部分环境问题的配置):https://download.csdn.net/download/qq_25337221/12427514

本内容由安康学院“雨季”原创。