一、引言
-
说在前面
在实际开发中,我们经常要一边开发一边测试(不是开发人员对自己代码的单元测试,而是开发人员将代码提交合并后,由测试人员测试);或者前后端分离后,经常会修改接口,这些情况都会涉及到频繁的打包部署。在智慧的劳动人民面前,繁琐重复的工作必将消失在历史的舞台上,当手动部署已成昨日,舞台上的聚光灯将聚焦在自动化部署上。
-
回顾历史
传统的打包部署虽已成风,但不妨碍我们缅怀过去,回顾我们曾经手动部署的青春。手动打包常规步骤:1.提交代码
2.拉取代码并打包(war包,或者jar包)
3.上传到服务器
4.查看日志(当前程序是否在运行)
5.关闭当前程序
6.启动新的jar包
7.观察日志看是否启动成功
8.如果这时候有同事说,自己还有代码没有提交…!!!!!
emm…可以问问旁边的同事夜宵吃什么,准备叫外卖吧
所以!自动化部署!!他来了!!!
当然,自动化部署的意义绝不仅仅如此。面对部署环境中不断增加的部署目标数量或者本身就庞大复杂的多组件应用程序,它的优势和好处会愈发明显。
二、走进自动化部署
-
Jenkins简介
那么,如何能够实现将代码提交后就自动打包部署?答:Jenkins。
当然除了Jenkins以外,也还有其他的工具可以实现自动化部署,如Hudson、ElectricFlow等。只是Jenkins相对来说,使用得更广泛。
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
-
部署环境
1.jdk环境,Jenkins是java开发的,需要依赖jdk环境。
2.git/svn,拉取代码。
3.maven/gradle,编译打包。
以上为jenkins的基础环境,可以提前部署好,也可以在jenkins的全局配置中进行自动配置。
本文以 CentOS8 为操作系统, Jenkins+ gitee 实现springboot 项目的自动化部署。
- Jenkins自动化部署流水线原理图
三、Jenkins
1、搭建环境
-
准备jdk软件包、Jenkins软件包、插件安装包
[root@jenkins ~]# ls -l -rw-r--r-- 1 root root 170023183 Aug 14 2018 jdk-8u181-linux-x64.rpm -rw-r--r-- 1 root root 74141787 Aug 13 2018 jenkins-2.99-1.1.noarch.rpm -rw-r--r-- 1 root root 164431230 Aug 14 2018 plugins.tar.gz
-
安装Jenkins和jdk
[root@jenkins ~]# rpm -ivh jdk-8u181-linux-x64.rpm warning: jdk-8u181-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY Preparing... ################################# [100%] Updating / installing... 1:jdk1.8-2000:1.8.0_181-fcs ################################# [100%] Unpacking JAR files... tools.jar... plugin.jar... javaws.jar... deploy.jar... rt.jar... jsse.jar... charsets.jar... localedata.jar... [root@jenkins ~]# rpm -ivh jenkins-2.99-1.1.noarch.rpm warning: jenkins-2.99-1.1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID d50582e6: NOKEY Preparing... ################################# [100%] Updating / installing... 1:jenkins-2.99-1.1 ################################# [100%]
-
配置Jenkins
[root@jenkins ~]# vim /etc/sysconfig/jenkins JENKINS_USER="root"
-
启动Jenkins
[root@jenkins ~]# systemctl start jenkins [root@jenkins ~]# netstat -lntp |grep java tcp6 0 0 :::8080 :::* LISTEN 19124/java
2、访问Jenkins
PS: a. Jenkins默认端口为8080 b. 加载界面需要稍微等待,如果加载时间过长,重启或断开本地网络重连试试
- 登录
根据红框内的路径查看初始密码
[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
- 插件安装
a. 本人建议稍后在Jenkins中配置国内的源后再进行插件的安装,否则安装速度会非常慢且很有可能安装失败。
b. 我们在之前也准备好了插件包,直接解压就好
[root@jenkins ~]# cp /root/plugins.tar.gz /var/lib/jenkins/
[root@jenkins ~]# cd /var/lib/jenkins/
[root@jenkins /var/lib/jenkins]# tar xf plugins.tar.gz
[root@jenkins /var/lib/jenkins]# ls -l plugins |wc -l
191
#设置权限
[root@jenkins /var/lib/jenkins]# chown -R root:root plugins
#重启Jenkins
[root@jenkins /var/lib/jenkins]# systemctl restart jenkins
- 欢迎界面登录账号密码
3、配置
- 系统管理 ->全局工具配置-> 配置 jdk、git、maven
- 以git为例,可以通过 Path to Git executable 手动配置本地git路径,也可以选择自动安装,其他配置相同
4、创建
-
点击新建
-
构建自由风格的项目
-
源码管理
-
构建
-
构建触发器
-
构建后操作
5、测试
-
点击项目构建
-
构建成功后 访问tomcat
-
访问成功
-
修改代码后访问 修改成功
PS:不同的构建策略 不同的触发方式 可以在构建触发器中进行配置
如果本篇博客对您有所帮助,欢迎点赞分享,您的肯定,是所有原创的动力。