一文详解:linux部署jenkins,一键构建并部署springboot至第三方服务器

news2024/10/5 3:27:46

目录

1、下载jenkins

2、 启动jenkins

3、访问jenkins

4、在当前Linux上安装maven

4.1、更新wget命令,支持https请求

4.2、下载maven

4.3、解压安装maven

4.4、配置maven环境变量

4.5、maven配置阿里云镜像

4.6、配置maven依赖下载的位置

5、Linux安装Git

6、构建我们第一个项目

6.1、配置支持maven的项目构建

6.2、新建任务

7、启动jenkins任务

8、把jenkins构建的项目,发布至其他的Linux服务器

8.1、jenkins安装Publish Over SSH插件

8.2、配置ssh servers

8.3、修改任务配置Post Steps(后置步骤)

8.4、重新构建项目

8.5、检查目标服务器

8.6、访问目标服务器项目


Linux环境要求:

  • JDK 8版本及以上

1、下载jenkins

中文官网:Jenkins

下载链接:Jenkins 的安装和设置

下载完成后,文件名为jenkins.war 

上传到Linux中,我上传到的目录为:/usr/local/jenkins

2、 启动jenkins

jenkins.war启动方式与jar一样(也可以添加启动参数),如下

java -jar jenkins.war

上述启动方式会占用当前shell窗口,当进行其他的命令操作或者关闭连接时,jenkins会关闭,后续请使用后台运行的方式:

nohup java -jar jenkins.war &

3、访问jenkins

我的Linux的IP地址为:192.168.221.128jenkins默认端口为8080

使用浏览器访问:http://192.168.221.128:8080

注意:

  • 若浏览器一致页面一直加载不出来,证明是防火墙没有关闭,需要关闭下防火墙,或者开放8080端口

查看防火墙状态:

systemctl status firewalld

关闭防火墙:

systemctl stop firewalld.service

如:

一切就绪后,jenkins页面加载如下:

 

加载完毕后,如下:

 选择"安装推荐的插件",下一个页面如下:

  • 正在安装推荐的插件,也需要等待...

 安装完成后,进入下个页面:

  • 由于创建管理员用户时,必须使用邮箱,直接点击"使用admin账户继续"

 下一个页面直接保存即可:

 修改admin密码:

  • 进入到设置界面,在该界面最下方输入重置密码即可

4、在当前Linux上安装maven

4.1、更新wget命令,支持https请求

yum install -y ca-certificates

4.2、下载maven

wget https://dlcdn.apache.org/maven/maven-3/3.9.1/binaries/apache-maven-3.9.1-bin.tar.gz

4.3、解压安装maven

tar -zxvf apache-maven-3.9.1-bin.tar.gz

4.4、配置maven环境变量

vi /etc/profile

复制下面内容至末尾:

# maven 我的maven安装在/usr/local/maven中
export MAVEN_HOME=/usr/local/maven/apache-maven-3.9.1
export PATH=$PATH:$MAVEN_HOME/bin

使profile文件立即生效

source /etc/profile

4.5、maven配置阿里云镜像

  • 默认的镜像很慢,需要使用国内镜像

编辑maven的配置文件:

vi /usr/local/maven/apache-maven-3.9.1/conf/settings.xml

在图示位置加入下述配置:

<mirror>
     <id>alimaven</id>
     <name>aliyun maven</name>
     <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
     <mirrorOf>central</mirrorOf>
</mirror>

4.6、配置maven依赖下载的位置

  • 我设置的下载位置为:/usr/lcoal/maven/repository

继续在上述配置文件中,加入配置:

<localRepository>/usr/local/maven/repository</localRepository>

至此,maven下载配置完成

5、Linux安装Git

jenkins需要通过Git去拉去代码,因此我们需要在Linux机器上安装下Git

git安装很简单,如下:

  • 使用yum安装git
yum install git

6、构建我们第一个项目

6.1、配置支持maven的项目构建

  •  默认新建任务下,是没有maven项目构建的选项,需要我们再安装下maven支持

 在可选插件中,输入maven:

 

 我们再新建任务时,发现已经支持maven项目构建了:

6.2、新建任务

1>选择构建maven项目

2>配置git项目克隆地址

配置完账号密码后,需要选择下:

3>jenkins配置maven 

 点击 the tool configuration

 

 4>设置pom文件位置

git拉取项目代码后,我的pom文件在git项目"helloworld"第一级目录中,如;

我们根据上述git目录结构,在jenkins配置pom即可 :

7、启动jenkins任务

 我们上述操作完成后,如下;

 

日志如下:第一次构建会很慢:

 至此,maven构建已完成,会生成一个jar文件,我的文件位置如下:

8、把jenkins构建的项目,发布至其他的Linux服务器

场景:当jenkins构建项目生成jar包后,我们需要发布到其他的服务器中进行运行(对应实际工作中的开发/测试/生产环境,jenkins服务器专门用于构建项目,最好不要在jenkins服务器直接运行jar项目)

前置工作(这里我就不演示了):

  1. 需要准备一台Linux虚拟机,我准备的虚拟机IP:192.168.221.129
  2. 该虚拟机需要关闭下防火墙
  3. 需要安装JDK1.8

8.1、jenkins安装Publish Over SSH插件

  • publish over ssh插件的作用:jenkins构建项目生成jar等文件后,通过publish over ssh插件发送至其他服务器

8.2、配置ssh servers

我们安装完插件后,需要配置ssh服务器地址(也就是jenkins往哪里发送文件)

位置:系统管理--系统配置--Publish over SSH中

 配置如下:

8.3、修改任务配置Post Steps(后置步骤)

找到 Post Steps(项目构建完成的后置步骤,也就是jar文件有了以后,想做什么操作):

注意:这个配置一定要知道当前jenkins构建项目后,生成的jar文件在哪(日志中可以看到):

我的在 :/root/.jenkins/workspace/我的第一个项目/target/helloworld-0.0.1-SNAPSHOT.jar

在此基础上,我的Post Steps配置如下:

ssh的相关问题注意:

很多人在文件发送成功后,找目标服务器上找不到文件的原因

<1>在ssh servers中配置目标服务器时

  • remote directory必须配置,否则通过ssh发送文件时,文件会不知所踪
  • 若remote directory配置了,那么目标服务器必须存在该路径

不然会报一下错误:

ERROR: Exception when publishing, exception message [Failed to connect and initialize SSH connection. Message: [Failed to change to remote directory [/usr/myproject]]]

<2>在任务构建配置下(也就是Post Steps中),remote directory填写的路径,目标服务器才会自动生成该路径

如:

  • 在配置ssh server时,我配置了remote directory为/usr/myproject
  • 在侯建任务的配置中,我也配置了remote directory为/usr/myproject

那么,在目标服务器上,我传输文件的真实路径为:

/usr/myproject/usr/myproject

 

8.4、重新构建项目

注意:在配置ssh server时,我配置了remote directory为/usr/myproject,所以在目标服务器,请创建下这个路径

启动任务构建项目:

 日志如下:

8.5、检查目标服务器

  • 检查项目是否启动

  • 查看jar文件位置

8.6、访问目标服务器项目

我的springboot项目很简单,只有一个测试接口,如下:

注意:目标服务器要记得关闭防火墙,或者开发8080端口

systemctl stop firewalld

浏览器直接访问:

http://192.168.221.129:8080/test

结果如下:

 至此,Linux部署jenkins,实现项目构建及发布已实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/421634.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis的使用【Redis】

一、缓存简介 缓存简介 二、缓存分类 缓存分类 三、常见缓存 常见缓存 四、Redis使用 Redis 有 5 ⼤基础数据类型&#xff1a; String——字符串类型Hash——字典类型List——列表类型Set——集合类型ZSet——有序集合类型 其中最常⽤的是字符串和字典类型。 1.字符…

Vulnhub靶场DC-1练习

目录0x00 准备0x01 主机信息收集0x02 站点信息收集0x03 漏洞查找与利用0x00 准备 下载链接&#xff1a;https://download.vulnhub.com/dc/DC-1.zip 介绍&#xff1a;There are five flags in total, but the ultimate goal is to find and read the flag in root’s home dir…

常见的DNS攻击与防御

DNS查询通常都是基于UDP的&#xff0c;这就导致了在查询过程中验证机制的缺失&#xff0c;黑客很容易利用该漏洞进行分析。DNS服务可能面临如下DNS攻击风险&#xff1a; 黑客伪造客户端源IP地址发送大量的DNS请求报文&#xff0c;造成DNS request flood攻击。黑客伪造成授权服…

Node.js安装与配置步骤

前言一、安装Node.js1.下载2.安装3.添加环境变量二、验证是否安装成功三、修改模块下载位置1.查看npm默认存放位置2.在 nodejs 安装目录下&#xff0c;创建 “node_global” 和 “node_cache” 两个文件夹3.修改默认文件夹4.测试默认位置是否更改成功四、设置淘宝镜像1.将npm默…

ARM Linux 内核启动2 ——C语言阶段

一、内核启动的C语言阶段 1 1、这一块的学习思路 (1) 抓大放小&#xff0c;不深究。 (2) 感兴趣可以就某个话题去网上搜索资料学习。 (3) 重点局部深入分析。 2、具体学习方法 (1) 顺着代码执行路径抓全。这是我们的学习主线。 (2) 对照内核启动的打印信息进行分析。 3、…

Ansible批量部署采集器

千台服务器部署采集器的时候用到了 Ansible&#xff0c;简单记录一下。 安装 Ansible pip install ansible yum install ansible –y在 /etc/ansible/hosts 中添加被管理组 &#xff0c;比如图中[web] 是组的名字。 执行ansible命令测试&#xff0c;通过hosts中定义的web组执…

君子签「数据签」正式上线,推动企业电子合同实现高效安全签署

近年来&#xff0c;从政府机关到企事业单位&#xff0c;数字化转型步伐明显加快。 在数字化的驱动下&#xff0c;在各行业的服务过程中&#xff0c;君子签对产品部署有了更深的沉淀和经验&#xff0c;通过不断打磨、升级产品&#xff0c;「数据签」产品于近日正式上线&#xf…

Word这样用,提高效率不加班

Word这样用&#xff0c;提高效率不加班 今天给大家分享23条Word文档的应用小技巧。对于大家来说&#xff0c;掌握些技巧能够效率百倍&#xff0c;何乐不为&#xff1f; 这些技巧是本人通过整理一直在用并且使用频率较高的&#xff0c;也希望能帮到大家。有兴趣的小伙伴可以自己…

Python | 基于LendingClub数据的分类预测研究Part01——问题重述+特征选择+算法对比

欢迎交流学习~~ 专栏&#xff1a; 机器学习&深度学习 本文利用Python对数据集进行数据分析&#xff0c;并用多种机器学习算法进行分类预测。 具体文章和数据集可以见我所发布的资源&#xff1a;发布的资源 Python | 基于LendingClub数据的分类预测研究Part01——问题重述特…

多路I/O转接 Epoll

基本概述 epoll是Linux下多路复用IO接口select/poll的增强版本&#xff0c;它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率&#xff0c;因为它会复用文件描述符集合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被监听的文件描述符集合…

从输入url到页面展现(二)找服务器其实是在找IP地址

前言 前一节我们讲述了url的规则&#xff0c;url的几种类型&#xff0c;以及访问web服务器的时候&#xff0c;如果用户访问的url如果不包含index.html的话&#xff0c;大概会如何去寻找这个url对应的文件&#xff0c;如果感兴趣的同学可以回头去看上一篇&#xff1a;从输入url…

PyTorch中的可视化工具

目录 一、网络结构的可视化 1.1 通过HiddenLayer可视化网络 1.2 通过PyTorchViz可视化网络 二、训练过程可视化 2.1 通过tensorboardX可视化训练过程 2.2 HiddenLayer可视化训练过程 三、使用Visdom进行可视化 一、网络结构的可视化 我们训练神经网络时&#xff0c;除…

xshell是什么软件

xshell是什么软件? Xshell 是一个强大的远程管理软件&#xff0c;它支持SSH&#xff0c;TELNET 协议。Xshell可以在Windows下访问远端服务器、路由器、网络机顶盒等&#xff0c;类似的常用软件还有putty&#xff0c;以及Windows下的Telnet。 下面简单介绍一下xshell软件。 X…

康耐视Designer,通过VC5与三菱Q系列PLC-SLMP通讯说明

测试使用软件版本 Designer Version: 2.7 GX Works2 Version: 1.77F 测试使用硬件 Cognex Vision Controller VC5 CIC-5000R Mitsubishi PLC: Q06UDEHCPU PLC端设置(内置以太网口型号) 1.新建一个工程,选择对应的PLC系列和PLC类型: 2.PLC参数设置(以太网设置):…

LabVIEW-数值控件和布尔控件

简介 LabVIEW 以其强大、开放、图形化的虚拟仪器软件开发环境使得无论是否有过编程经验的工程师或科学家使用它时都可以快速、高效地与测量和控制硬件通信&#xff0c;并进行复杂的数据分析及处理。LabVIEW集成了满足GPIB、PXI、VXI、RS232、RS485、USB、DAQ等多种形式的设备互…

MATLAB算法实战应用案例精讲-【自动驾驶】激光雷达LiDAR(补充篇)

目录 前言 几个高频面试题目 自动驾驶中的传感器&#xff1a;LiDAR和 Radar的区别 LiDAR Radar 性能对比 激光雷达中是如何做到和GPS时间同步的&#xff1f; 一、三种方案PPSGPRMC、PTP、gPTP 二、同步过程 算法原理 发展历程 国内外厂商 算法思想 测距 三角测…

【博学谷学习记录】超强总结,用心分享丨人工智能 AI项目 前向概率计算笔记

目录前向概率模型基础参数公式推导代码实现前向概率 给定隐马尔可夫模型λ\lambdaλ&#xff0c;定义到时刻ttt部分观测序列为o1,o2,⋯,oto_1,o_2,\cdots,o_to1​,o2​,⋯,ot​且状态为sis_isi​的概率为前向概率&#xff0c;记作αt(i)P(o1,o2,⋯,ot,itsi∣λ)\alpha_t(i)P(o…

GDPU C语言 天码行空9

填空题 1. 指针排序 数组 输入 n5 30 85 12 77 6输出 6 12 30 77 85 &#x1f920; 代码 #include<stdio.h>#define N 10void sort(int *x,int n)// *x 是 数组 a 的地址 {int i,j,k,t;for(i0;i<n-1;i)//从前往后枚举 坑位{ki; for(ji1;j<n;j) if(x[k…

计算机网络 实验五

⭐计网实验专栏&#xff0c;欢迎订阅与关注&#xff01; ★观前提示&#xff1a;本篇内容为计算机网络实验。内容可能会不符合每个人实验的要求&#xff0c;因此以下内容建议仅做思路参考。 一、实验目的 理解DNS的域名解析机制&#xff0c;理解DHCP的工作机制熟悉WEB应用及超…

逍遥自在学C语言 | 位运算符>>的高级用法

前言 在上一篇文章中&#xff0c;我们介绍了<<运算符的高级用法&#xff0c;本篇文章&#xff0c;我们将介绍>> 运算符的一些高级用法。 一、人物简介 第一位闪亮登场&#xff0c;有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小…