jenkins+gogs实现JavaWeb项目自动化部署(二)

栏目: 服务器 · 发布时间: 5年前

内容简介:上一篇文章主要介绍了jenkins和gogs的安装,这一篇重点介绍如何实现JavaWeb项目的自动化部署。我们的

上一篇文章主要介绍了jenkins和gogs的安装,这一篇重点介绍如何实现JavaWeb项目的自动化部署。

我们的 目标 是把war包传到应用服务器上,然后关闭tomcat,再启动tomcat。先看下面我们的打包流程。

jenkins+gogs实现JavaWeb项目自动化部署(二)

这里对B、C两步做下说明,tomcat是装在root用户下的,我们的应用服务器做了限制,只能直接ssh登录到普通用户,然后手动切换到root用户。

在使用自动化部署之前我们是纯手动做这些操作的,使用了自动化部署以后我们只需要点击“立即构建”,工具将自动为我们完成这些步骤。

在正式开始之前,我们先做些准备工作。

一、准备工作

登录到jenkins首页后我们需要安装常用的几个插件。

jenkins+gogs实现JavaWeb项目自动化部署(二) 安装如下几个插件:

1、Maven Release Plug-in

2、Publish Over SSH

3、Gogs

4、Deploy to container

接着系统管理—-》全局 工具 配置,配置git命令的目录,如果你不知道git命令的目录在哪里,输入 linux 命令 whereis git

jenkins+gogs实现JavaWeb项目自动化部署(二) 二、jenkins+gogs自动化部署

前期所有的工作准备好后,接下来开始正式步入正题。

1、新建任务

点击jenkins首页左边栏的“新建任务”,输入任务的名字后点击“确定”

jenkins+gogs实现JavaWeb项目自动化部署(二)

2、配置代码仓库

jenkins+gogs实现JavaWeb项目自动化部署(二) 输入项目的地址后会出现如上错误,这是因为没有配置公钥。

我们需要把服务器中的公钥添加到gogs中。

登录自己服务器,切换到root账户,输入命令 ssh - keygen - t rsa 一路回车,然后 cd ~ / . ssh cat id_rsa . pub 复制出里面的内容。

接着打开gogs页面,点击右上角的头像—-》用户设置—-》SSH密钥—-》增加密钥,输入任意名字(我是以服务器ip命名),把上面复制的密钥拷贝过来。

把私钥配置到jenkins中。

jenkins+gogs实现JavaWeb项目自动化部署(二) jenkins+gogs实现JavaWeb项目自动化部署(二) 添加后然后选择我们刚刚添加的私钥,发现不报错了

jenkins+gogs实现JavaWeb项目自动化部署(二)

3、配置Build选项

jenkins+gogs实现JavaWeb项目自动化部署(二)

clean package - Dmaven . test . skip = true

所有的都配置好后我们点击底部的“保存”,回到项目页面,点击左边的“立即构建”

jenkins+gogs实现JavaWeb项目自动化部署(二) 上图是我们正式项目的构建记录。到这一步如果构建没问题,会在 / var / lib / jenkins / workspace / test / target 这个目录下看到我们编译后的war包。

到目前为止,我们只是完成了文章开头定的目标中的A步。我们接着往下走,来完成我们未完成的目标。

4、接下来我们就借助强大的 Send build artifacts over SSH  插件来完成我们后续的所有目标

jenkins+gogs实现JavaWeb项目自动化部署(二) jenkins+gogs实现JavaWeb项目自动化部署(二) 默认如果没有配置过ssh,这里的Name是空的,如果不知道Name后面选什么,可以点击最右边的问号寻求帮助。

这里我们的重点就是配置ssh免密登录。可能有人会问免密登录是什么意思,不好意思,请百度之~。

我们的目标是要实现将war包传到应用服务器上并重新启动tomcat。所以这里我们要配置怎么样才能免密登录到应用服务器上。记得先保存下刚刚的配置。

jenkins+gogs实现JavaWeb项目自动化部署(二)

进入系统设置页面后滚动到页面底部,我们会看到如下配置

jenkins+gogs实现JavaWeb项目自动化部署(二) 需要把宿主机(jenkins所在的服务器)上的私钥(上面配置git的时候有说道)拷贝到key那里。

jenkins+gogs实现JavaWeb项目自动化部署(二)

如果点击Test Configuration出现了Success,那说明能成功免密登录到应用服务器的jenkins账户下。接着再回到项目的配置页面,回到我们这一步的开头那里,选择配置好的ssh server。

Source files:这个是相对目录,相对于 / var / lib / jenkins / workspace / test / 这个目录,可以看我上面的配置

Remote directory:这是上传到jenkins账户后的目录,如/home/jenkins/csm

Remove prefix:这个意思是移除前缀目录,要不然拷贝到应用服务上会在Remote directory目录后面追加

重点就是Exec command,用脚本实现我们的CDEF这几步。

sudo su <<EOF
sleep 5s
 
#sh /usr/local/tomcat/apache-tomcat-8.5.20/bin/shutdown.sh > /dev/null 2>&1 &
#sleep 3s
 
ps -ef|grep apache-tomcat-8.5.20|grep -v grep|awk '{print $2}'|xargs kill -9
sleep 5s
 
rm -rf /usr/local/tomcat/apache-tomcat-8.5.20/myapp/ROOT
rm -rf /usr/local/tomcat/apache-tomcat-8.5.20/myapp/runplat/App.war
 
cp /home/jenkins/csm/App.war /usr/local/tomcat/apache-tomcat-8.5.20/myapp/runplat
 
BUILD_ID=DONTKILLME
 
echo "start tomcat...."
nohup sh /usr/local/tomcat/apache-tomcat-8.5.20/bin/startup.sh &
echo "start tomcat successful"
EOF

到这里基本上是大功告成了,这里容易出错的地方是ssh的配置,出现问题多百度和谷歌看看。

另外脚本那块也容易出错,大家如果有好的脚本不妨也写出来资源共享下。

保存退出后,再回到首页,点击右边的构建按钮,如果出现太阳了说明99%是成功了,如果出现错误可以根据控制台输出的信息查看错误原因,相信自己肯定能解决的。想要深入了解jenkins加入jenkins讨论群是必须的,QQ搜索jenkins会有很多推荐的群,大家选择加入。

文章中如果有错误的地方也欢迎大家指正。

版权声明:本文为博主原创文章,未经博主允许不得转载。http://www.longdw.com/jenkinsgogsjavawebautopublish2/


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Ordering Disorder

Ordering Disorder

Khoi Vinh / New Riders Press / 2010-12-03 / USD 29.99

The grid has long been an invaluable tool for creating order out of chaos for designers of all kinds—from city planners to architects to typesetters and graphic artists. In recent years, web designers......一起来看看 《Ordering Disorder》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码