内容简介:上一篇文章主要介绍了jenkins和gogs的安装,这一篇重点介绍如何实现JavaWeb项目的自动化部署。我们的
上一篇文章主要介绍了jenkins和gogs的安装,这一篇重点介绍如何实现JavaWeb项目的自动化部署。
我们的 目标 是把war包传到应用服务器上,然后关闭tomcat,再启动tomcat。先看下面我们的打包流程。
这里对B、C两步做下说明,tomcat是装在root用户下的,我们的应用服务器做了限制,只能直接ssh登录到普通用户,然后手动切换到root用户。
在使用自动化部署之前我们是纯手动做这些操作的,使用了自动化部署以后我们只需要点击“立即构建”,工具将自动为我们完成这些步骤。
在正式开始之前,我们先做些准备工作。
一、准备工作
登录到jenkins首页后我们需要安装常用的几个插件。
安装如下几个插件:
1、Maven Release Plug-in
2、Publish Over SSH
3、Gogs
4、Deploy to container
接着系统管理—-》全局 工具 配置,配置git命令的目录,如果你不知道git命令的目录在哪里,输入 linux 命令 whereis git
二、jenkins+gogs自动化部署
前期所有的工作准备好后,接下来开始正式步入正题。
1、新建任务
点击jenkins首页左边栏的“新建任务”,输入任务的名字后点击“确定”
2、配置代码仓库
输入项目的地址后会出现如上错误,这是因为没有配置公钥。
我们需要把服务器中的公钥添加到gogs中。
登录自己服务器,切换到root账户,输入命令 ssh - keygen - t rsa 一路回车,然后 cd ~ / . ssh cat id_rsa . pub 复制出里面的内容。
接着打开gogs页面,点击右上角的头像—-》用户设置—-》SSH密钥—-》增加密钥,输入任意名字(我是以服务器ip命名),把上面复制的密钥拷贝过来。
把私钥配置到jenkins中。
添加后然后选择我们刚刚添加的私钥,发现不报错了
3、配置Build选项
clean package - Dmaven . test . skip = true
所有的都配置好后我们点击底部的“保存”,回到项目页面,点击左边的“立即构建”
上图是我们正式项目的构建记录。到这一步如果构建没问题,会在 / var / lib / jenkins / workspace / test / target 这个目录下看到我们编译后的war包。
到目前为止,我们只是完成了文章开头定的目标中的A步。我们接着往下走,来完成我们未完成的目标。
4、接下来我们就借助强大的 Send build artifacts over SSH 插件来完成我们后续的所有目标
默认如果没有配置过ssh,这里的Name是空的,如果不知道Name后面选什么,可以点击最右边的问号寻求帮助。
这里我们的重点就是配置ssh免密登录。可能有人会问免密登录是什么意思,不好意思,请百度之~。
我们的目标是要实现将war包传到应用服务器上并重新启动tomcat。所以这里我们要配置怎么样才能免密登录到应用服务器上。记得先保存下刚刚的配置。
进入系统设置页面后滚动到页面底部,我们会看到如下配置
需要把宿主机(jenkins所在的服务器)上的私钥(上面配置git的时候有说道)拷贝到key那里。
如果点击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/
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Syncd - 自动化部署工具
- 前端自动化部署方案探索
- 使用 Capistrano 进行自动化部署
- jenkins自动化项目部署实战
- Syncd——开源自动化部署工具
- SaltStack自动化批量部署Apache
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python深度学习
[美] 弗朗索瓦•肖莱 / 张亮 / 人民邮电出版社 / 2018-8 / 119.00元
本书由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱(François Chollet)执笔,详尽介绍了用Python和Keras进行深度学习的探索实践,涉及计算机视觉、自然语言处理、生成式模型等应用。书中包含30多个代码示例,步骤讲解详细透彻。由于本书立足于人工智能的可达性和大众化,读者无须具备机器学习相关背景知识即可展开阅读。在学习完本书后,读者将具备搭建自己的深度学习环境、建......一起来看看 《Python深度学习》 这本书的介绍吧!