超详细教你用Jenkins实现自动化jar包部署

这里就只演示单个项目的部署,如果是分布式项目或者在KubeSphere只需要将传统构建项目改成流水线即可,这边就简单实现一下拉取代码,maven打包,包体上传,重启jar包等。

jenkins安装可以查看我的另一篇blog,里面用了docker安装,快捷而且比传统tomcat+war或者yum安装少了不少坑。

注意:使用的maven是挂载进来的,下载maven:maven3.5.4,所以需要先在docker宿主机安装maven,并配置环境变量。


1.jenkins入门配置

1.获取初始密码

打开jenkins页面,默认端口是 ip:8080本地就是localhost:8080;

在这里插入图片描述

首先解锁jenkins,通过服务器进入到jenkins的容器

docker exec -it jenkins /bin/bash
jenkins@93f88d6ca212:/$ cat /var/jenkins_home/secrets/initialAdminPassword
a6f6d08fcc474178833001d1fc79be62

2.安装默认插件

然后安装默认的插件,如果你知道自己需要什么插件也可以选择指定安装。 如果不知道先安装默认,后续要使用什么安装什么。

在这里插入图片描述

3.创建管理员账号

接着安装完毕后创建第一个账号

在这里插入图片描述

4.实例配置

配置实例就默认服务器地址就好

在这里插入图片描述 这样jenkins默认配置就好了,但插件还是缺少的。

2.安装插件

1.进入系统管理

在这里插入图片描述

2.点击插件管理

在这里插入图片描述 系统配置中最常用的就是这三个配置,记住他们入口就好在左边齿轮进入就好。

3.安装所需插件

选择可选插件 搜索我们需要安装的,如果搜索不到确认是否已经在已安装内了。

在这里插入图片描述 1️⃣ Publish over ssh:ssh传输文件的插件,相当于我们平时使用的xftp,用于上传文件到服务器。 2️⃣ Maven Integration plugin:用于配置maven的,用于在jenkins中打jar包。 3️⃣ Role-based Authorization Strategy:用于控制权限的,可以给不同用户设置管理员、读、写权限。

安装好记得重启jenkins。

3.配置安装好的插件

回到系统配置

在这里插入图片描述

1.配置maven

在上一篇文章安装中,我挂载了一个maven文件夹,那个maven文件夹的作用就是为了在容器中使用。 然后在服务器找个文件夹解压就好,然后挂载到docker中使用。

进入全局工具配置->Maven name:随便填 MAVEN_HOME:挂载到docker中的路径,因为我还打包了一层文件夹所以我的maven是放在apache-maven-3.5.4/下 在这里插入图片描述

还要配置settings文件。同理找到文件夹中settings就好 在这里插入图片描述

2.配置ssh

进入到系统配置的第一个,系统配置 找到publish over ssh 在这里插入图片描述 然后点击高级打开设置端口+密码

在这里插入图片描述 最后测试连接情况,提示success就是能够连接上啦~

4.创建自动化任务

全部准备工作就绪,就开始创建自动化部署任务。

  1. 拉取代码。
  2. 打包。
  3. 上传对应服务器。
  4. 重启jar包。

1.拉取代码

在这里插入图片描述 在这里插入图片描述 注意:git地址如果选择ssh则需要配置公私钥,具体使用可查看jenkins配置git,这边使用账号密码的方式获取

在这里插入图片描述 git用户名和密码

在这里插入图片描述

2.打包

在这里插入图片描述

注意:这里的路径是在工作目录下的路径,我们代码拉取下来,pom.xml就在文件夹中,所以配置的是pom.xml,如果是微服务多层文件夹就需要指定 xxx微服务/pom.xml

// 跳过test也可以直接使用clean package
clean package -Dmaven.test.skip=true

3.把jar包上传服务器

在这里插入图片描述

这里因为我要上传服务器,所以选择了send files选项

在这里插入图片描述 重点讲一下post steps的配置

  • name:之前在全局配置配置的服务器,选择具体配置即可。
  • Source files:在jenkins Workspace打包后,要上传的文件,因为我们的包是会产生在 target/xxxxxx.jar,所以我们需要配成target/xxxx.jar
  • Remove prefix:如果这个不配置,那么我们会将target文件夹+jar包上传到服务器,因为我们只要jar包,所以配置target/
  • exec command:上传文件夹后,在目标服务器执行的脚本,脚本就是重启程序,如果需要备份还可以在pre步骤执行shell脚本备份。
  • 如果目标服务器已经有该同名jar包,就会覆盖。

注意:脚本执行失败的原因

  1. 需要进入到脚本位置 sh restart.sh。
  2. 如果启动命令执行失败,在sh前加上 source /etc/profile。
cd /home/endwas/d
source /etc/profile
sh restart.sh

4.运行

在这里插入图片描述

ps:如果执行失败点击版本号,查看日志,确认哪步执行失败了

在这里插入图片描述

总结

jenkins自动化部署,加上可视化界面对于运维是很有帮助的,使得测试和前后端对接效率提高,但有时候配置会让人抓狂,比如环境中配置了,但一直用不了mvn、node等命令。在远程主机执行shell却项目没启动等。

end
  • 作者:Endwas(联系作者)
  • 发表时间:2021-11-06 16:24
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 转载声明:如果是转博主转载的文章,请附上原文链接
  • 公众号转载:请在文末添加作者名字和博客地址
  • 评论