首页 > 其他分享 >Jenkins之安装使用

Jenkins之安装使用

时间:2024-04-30 22:00:32浏览次数:20  
标签:1.4 配置 使用 JAR 服务器 Jenkins 安装 打包

目录

1 Jenkins使用

点击了解 Jenkins框架原理
点击了解 Jenkins之声明式流水线语法

1.1 原理图示

在这里插入图片描述

  • Jenkins 部署在一台服务器上,然后安装了很多必备的 Jenkins 插件。比如拉取 Gitlab 仓库代码的插件、远程执行命令和拷贝文件的插件。
  • Jenkins 开始运行一个任务时,通过 Git 插件从 Gitlab 仓库拉取代码到本地目录。
  • Jenkins 通过 JDKMaven 工具对 Java 代码进行打包部署。
  • Jenkins 通过 SSH 插件执行远程命令,将包进行备份、清理操作。
  • JenkinsJAR 包拷贝到远程服务器的固定目录下。
  • Jenkins 执行远程命令,更新服务。

1.2 Jenkins 简易安装教程

Jenkins 官方网站对 Jenkins 如何安装已经讲解得非常清晰了,所以这里不再赘述
Jenkins 下载地址:https://www.jenkins.io/download/
Jenkins 安装步骤:https://www.jenkins.io/doc/book/installing/

安装完成后,我们需要配置 Jenkins。

1.3 配置 Jenkins

因为我们要打包部署的项目是 Java 项目,所以需要将 Java JDK 所在的目录和 Maven 所在目录配置到 Jenkins 中,这样 Jenkins 打包时就能利用这两个工具进行打包。

配置全局工具:Maven
配置如下:
在这里插入图片描述
在这里插入图片描述

配置环境变量:Java JDK和Maven
图片

上面的配置完成后,我们就可以测试下是否可以将代码仓库中的某个分支的代码拉取下来进行打包。

1.4 通过 Jenkins 一键部署

在使用 Jenkins 时,我们必须创建一个任务才行,然后这个任务里面可以配置要执行的各种操作。

Jenkins 中自动构建项目的类型有很多,常用的有以下三种:

  • 自由风格软件项目(FreeStyle Project
  • Maven项目(Maven Project
  • 流水线项目(Pipeline Project

每种类型的构建其实都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在实际开发中可以根据自己的需求和习惯来选择。

下面演示创建一个简单的自由风格项目来完成项目的集成过程:

拉取代码->编译 Java 项目->备份服务器 JAR 包->删除服务器 JAR 包->拷贝 JAR 包到服务器->更新服务

图片

1.4.1 创建一个项目

图片

创建成功后就会出现一条记录:
图片
为了测试我们的 Jenkins 是否能正常拉取代码并打包,我们需要配置 Gitlab 代码仓库的地址、用户名、密码。

1.4.2 配置拉取的代码仓库

在这里插入图片描述

配置打包
图片

配置 Maven 打包

echo "开始打包"
mvn clean package
echo "打包完成"

配置到这一步后,我们可以先验证下这些配置是否生效。

1.4.3 运行项目

Dashboard 可以看到配置完成的任务,点击 Build Now 按钮即可开始拉取代码、打包项目。
我们还可以从控制台输出看到打包记录。
Jenkins 会从 Gitlab 仓库拉取指定分支的代码,然后运行 mvn clean package 命令,进行打包。
图片
输出记录中打印出了以下关键信息:代码拉取后存放在哪,打的 jar 包在哪

代码和生成的 jar 包在到这个根目录找到:
C:\ProgramData\Jenkins.jenkins\workspace\passjava-dev

还可以从打印日志的最后看到这次打包用时 2 min 33 秒,任务的执行状态为 Finished Success。
接下来就是将这些 JAR 包拷贝到远程服务器地址。

1.4.4 拷贝安装包

拷贝安装包需要用到一个插件:Publish Over SSH
Dashboard>Manage Jenkins->插件管理->Avaliable plugins

下图是已经安装好了这款插件的截图
图片

配置这个插件的全局配置:

  • SSH Server Name:远程服务器的名字,后面在配置拷贝包的时候可以根据名字选择拷贝到哪台服务器。
  • HostnameSSH ServerHostname
  • UsernameSSH Server 登录名和密码或密钥。
  • Remote Directory:指定将文件拷贝到哪个目录。

在这里插入图片描述

1.4.5 备份服务器 JAR 包

在上传打包好的 JAR 包之前,需要将应用服务器上的 JAR 备份。

备份的步骤如下:

  • 在远程服务器创建一个备份目录 bak。
  • 在备份目录bak上创建一个以当前时间作为目录名的目录。
  • 将远程服务器的上 JAR 重命名为原文件名+时间戳的名字。

在这里插入图片描述

1.4.6 拷贝 JAR 包到远程服务器

需要配置以下内容:

  • SSH Server:指定要将文件拷贝到哪个服务器,格式为 <用户名>@<ip 地址>
  • Transfer Set Source filesjenkins 编译后的 JAR 地址。通过之前的编译信息我们知道,JAR 包地址在如下路径:
    C:\ProgramData\Jenkins.jenkins\workspace<Jenkins 任务名><编译目录>
  • Remove prefix:要移除的文件路径前缀。
  • Remte directory:拷贝到哪个路径下,如果之前已经配置过全局的文件夹,则拷贝的文件会放到 <全局文件夹>/之下,如果全局文件夹之下没有这个 Remote directory 目录,则创建一个。这里我们不需要配置,全局配置已经可以满足条件了。
  • 如果还有其他 JAR 包也需要拷贝则需要再添加一项。

在这里插入图片描述

1.4.7 滚动更新服务

项目采用的 Docker Swarm 方式来管理集群中的微服务。
Jenkins 通过 插件 发送命令到应用服务器上执行指定的脚本
图片

配置远程执行脚本的命令

cd /nfs-data/wukong/
nohup sudo sh restart.sh
exit

这个命令使用 nohupsudo 权限来执行名为 restart.sh 的脚本。nohup 命令用于将脚本在后台运行,即使终端会话结束,脚本仍然继续运行。
点击此处了解 nohup和& 命令使用讲解

1.4.8 远程服务器上创建脚本

如果想要 jenkins 执行远程服务器上的脚本,则需要先在远程服务器上创建一个可执行的脚本。
这里我们需要重启服务器的容器服务,所以在这个目录 /nfs-data/wukong/ 编写一个 restart.sh 脚本。

echo "部署 passjava 服务"
nohup sudo docker service update accountservice --force > /nfs-data/wukong/jenkins/account.txt
nohup sudo docker service update gatewayservice --force > /nfs-data/wukong/jenkins/gateway.txt
nohup sudo docker service update qmsservice --force > /nfs-data/wukong/jenkins/qms.txt
这个命令使用--force选项来更新名为"accountservice、gatewayservice、qmsservice"的 Docker 服务。命令的输出被重定向到文件/nfs-data/wukong/jenkins/xxx.txt中。

标签:1.4,配置,使用,JAR,服务器,Jenkins,安装,打包
From: https://www.cnblogs.com/jingzh/p/18168760

相关文章

  • jenkins学习转载文本
    基于Docker容器DevOps应用方案企业业务代码发布系统一、企业业务代码发布方式1.1传统方式以物理机或虚拟机为颗粒度部署部署环境比较复杂,需要有先进的自动化运维手段出现问题后重新部署成本大,一般采用集群方式部署部署后以静态方式展现1.2容器化方式以容器为颗粒度......
  • 前端使用 Konva 实现可视化设计器(8)- 预览框
    请大家动动小手,给我一个免费的Star吧~大家如果发现了明显的Bug,可以提Issue哟~这一章我们实现一个预览框,实时、可交互定位的。github源码gitee源码示例地址预览框定位方法移动画布,将传入x,y作为画布中心://更新中心位置updateCenter(x=0,y=0){......
  • 使用Vue3在浏览器端进行zip文件压缩
    在前端开发中,我们时常需要处理文件上传和下载的功能。有时,用户可能希望将多个文件打包成一个zip文件以便于下载。今天,我将分享一个使用Vue3和JSZip库在浏览器端实现zip文件压缩的示例。首先,我们需要安装JSZip库。如果你使用的是npm,可以通过以下命令进行安装:npminstalljszip......
  • 学会使用 NumPy:基础、随机、ufunc 和练习测试
    NumPyNumPy是一个用于处理数组的Python库。它代表“NumericalPython”。基本随机ufunc通过测验测试学习检验您对NumPy的掌握程度。通过练习学习NumPy练习练习:请插入创建NumPy数组的正确方法。arr=np.([1,2,3,4,5])示例创建NumPy数组:importnumpy......
  • SQL SERVER 从入门到精通 第5版 第三篇 高级应用 第12章 游标的使用 读书笔记
     第十二章游标的使用>.游标的概述游标是一种数据库对象,用于在SQL中处理(SELECT的)查询结果集。它允许逐行地访问查询结果集的数据,以进行一系列操作,如更新、删除或插入数据。游标通常用于存储过程或触发器中,用于对数据进行逐行处理。通过游标,可以实现对结果集的逐行处......
  • boost的安装、查看与卸载(某动态库要求的boost版本不适配怎么办?)
    boost的安装、查看与卸载(某动态库要求的boost版本不适配怎么办?)查看版本dpkg-S/usr/include/boost/version.hpp原生安装动态库位置:Usr/local/lib/或者/usr/lib/x86_64-linux-gnu/安装boost官网下载想要的boost版本,按下述方式编译安装,不需要卸载原本的boost,注意最后.......
  • 使用g开头的数组字符串的解析
    在做ofd的文件解析的时候,会遇到带有这种描述的数组"g22.03g31.20.2"。这个字符串通过空格进行分割得到一个["g",2,2.0,3,"g",3,1.2,0.2]这样的数组数据。这个是以g表示一个数组的开头,包含了2个元素,每个元素都是2.0的数组。整个字符串翻译成一个完整的数组就是这样......
  • maven安装
    1.什么是Mavenmaven是一个项目管理工具;它可以统一管理jar包,自动生成项目结构,在传统的Java开发中,我们往往要手动测试jar包的版本,并且自己手动配置项目的目录结构;如果使用maven,将方便很多。注意:Maven需要Java环境,所有首先需要安装JDK 2.maven下载官方下载地址:https://maven.apa......
  • 你是怎么理解ES6中 Promise的?使用场景?
    一、介绍Promise,译为承诺,是异步编程的一种解决方案,比传统的解决方案(回调函数)更加合理和更加强大在以往我们如果处理多层异步操作,我们往往会像下面那样编写我们的代码doSomething(function(result){doSomethingElse(result,function(newResult){doThirdThing(newRe......
  • KVM 安装 win11 安装过程
    win11安装1、创建空磁盘2、新建xml文件,cdrom启动3、下载驱动virtio-win-0.1.225.iso4、启动虚拟机,开始安装5、无法识别磁盘,挂载驱动virshdomblklistbendi查看磁盘分配virshchange-mediabendihdc/vmdata/vmdisk/virtio-win-0.1.225.iso挂载驱动镜像,镜像路径要绝对......