Jenkins自动化部署(二)Jenkins的安装卸载以及如何自动化部署后端项目

2023年 10月 9日 165.6k 0

前言

  繁琐的准备工作完成后,我们终于可以进入Jenkins的安装环节,不知道前期Jdk、Nginx等软件如何安装的小伙伴可以看笔者的Jenkins自动化部署(一),Jenkins自动化部署,看这一套就够了。

正文

安装Jenkins

  好的,话不多说,我们直接就是开始安装,这里我们选择的安装方式是WAR包的方式,主打一手简单快捷。

  百度搜索Jenkins,进入官网,下载WAR包,没有科学上网手段的可以在评论区留言,我这里有最新版的WAR包(最低支持JDK11)。

  下载WAR包之后,直接上传服务器,像启动普通JAR包一样启动就行(当然,你也可以选择下一个tomcat,然后运行WAR包),因为启动默认8080端口,如果服务器提前安装过Nginx,需要指定Jenkins启动的端口。

nohup java -jar jenkins.war --httpPort=8888 >> jenkinsLog.out 2>&1 &

  简单解释一下上面的命令,大体就是在8888端口以后台运行的方式启动war包,然后把所有日志输出到jenkinsLog.out这个文件。

  然后使用命令 tail -f jenkinsLog.out 查看启动日志,当你看到一串很长的字符串,恭喜你,Jenkins启动成功了。

  此时我们直接访问服务器ip+8888端口就可以看到Jenkins的可视化界面。

  这里可能会有人看不到界面,不要慌,看一下是不是防火墙和安全组没放开8888端口。

  如果顺利的看到界面,直接无脑下一步,你之前看到的日志中那串字符串,就是Jenkins生成的默认密码,登录之后别忘了创建属于自己的账户哦。

   ps:不知道有没有需要安装插件的小伙伴,如果安装插件失败,排除Jenkins版本过低的因素之后,可以考虑换源大法(清华大学镜像yyds)

换源步骤

  1、修改hudson.model.UpdateCenter.xml文件

vi /root/.jenkins/hudson.model.UpdateCenter.xml 
# 若不知道这个文件的路径怎么办
find / -name *.UpdateCenter.xml
# 更换url路径
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

  2、修改updates文件夹内default.json

cd /root/.jenkins/updates/
sed -i 's/https://updates.jenkins.io/download/http://mirrors.tuna.tsinghua.edu.cn/jenkins/g' /root/.jenkins/updates/default.json
sed -i 's/https://www.google.com/https://www.baidu.com/g' /root/.jenkins/updates/default.json

Jenkins配置

接下来我们配置各项插件

全局工作配置

image.png

1、配置Maven配置文件,这里的文件路径就是你实际安装的地址,注意要填写到setting.xml文件

image.png

2、配置JDK

image.png

3、配置Git

image.png

Git注意路径填写到git命令而不是git文件夹

4、配置Maven

image.png

5、配置NodeJS

image.png
一句话总结:除Git外,其他路径填写到软件的最外层文件夹即可

系统配置

image.png

1、Gitee配置

image.png

注意添加按钮添加个人凭据,Gitee登录的用户名和密码,如果输入错误,想一想自己是不是用邮箱注册的(虽然现在大部分手机号登录,但注册的时候可能有一些是用的邮箱!!!)

创建自动化部署任务

因为我代码存放在Gitee上,所以本文针对Gitee

选择保留以前的构建,主要是方便出现问题回滚

image.png

下面选择源码管理,填你需要构建的代码的仓库路径,选择你提前准备好的凭证(上面填的Gitee的用户名和密码),这里懒得打码了,就不上图了

选择打包的分支,这里很重要,为什么重要,后面再说

image.png

注意这里打了马赛克的路径
image.png

看到这里的根据分支过滤了嘛?可以简单理解为,我们只会操作正式分支的代码,你对其他分支的任何改变与Jenkins无关(不能开发分支随便提交代码都触发构建)
image.png
生成Gitee回调密码

image.png

Gitee配置回调
注意这个仓库设置界面,只有你代码仓库的创建者才可以看见(这个界面在码云上,和Jenkins无关了)

image.png

ok,各种配置完事了,下面开始写脚本吧

image.png
大概讲解一下,就是把老jar包备份,删掉原来的进程

#!/bin/bash
# 判断输入参数是否为空
if [ -z "$1" ]
then
  echo "请指定要重启的jar包名称"
  exit 1
fi

# 获取指定的 jar 包名称
jar_name="$1"

# 查找正在运行的指定进程
pid="$(ps -ef | grep "$jar_name" | grep -v grep | grep -v y.sh | awk '{print $2}')"

# 备份的路径
backup_path="/usr/local/backup/${jar_name}-$(date +%Y%m%d%H%M%S)"
# 原jar包路径
jar_path="/usr/local/${jar_name}"

# 如果找到了指定进程,则结束该进程
if [ -n "$pid" ]
then
  echo "关闭进程 $pid ..."
  kill -9 "$pid"
else
  echo "未找到进程 $jar_name"
fi

cp "$jar_path" "$backup_path"

rm "$jar_path"

ok,构建

image.png

注意图中的路径,实际打出来的jar包就存放在那里,所以构建完成后我们要进入到这个路径,去拿到新的jar包

image.png
Jenkins会自动杀死协助进程,没有这句话,下面的启动语句刚开始执行就被杀掉

BUILD_ID=DONTKILLME

start.sh脚本内容如下

#!/bin/bash

# 判断输入参数是否为空
if [ -z "$1" ]
then
  echo "请指定要重启的jar包名称"
  exit 1
fi

# 获取指定的 jar 包名称
jar_name="$1"

# 启动新的 Java 进程
echo "启动 $jar_name ..."
nohup java -jar "$jar_name"  >> nohup`date +%Y-%m-%d`.out 2>&1 &

注:以上脚本必须在自动化构建之前执行 chmod +x 脚本名称,否则脚本无法执行

后记

到这里,我们自动化构建后端项目就彻底完成了,有疑问或者错误欢迎评论区与笔者沟通,下一篇我们写前端自动化构建

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论