快速搭建Jenkins自动化集成cicd工具

一、简介

jenkins是一款优秀的自动化持续集成运维工具,可以极大的简化运维部署的步骤。

传统的项目部署需要手动更换最新的项目代码,然后打包并运行到服务器上。

使用Jenkins可以自动化实现,当代码编写完成并提交到git后,Jenkins可以自动的拉取最新的代码,并编译打包,打包完成后可以自动去启动运行完成项目部署,无需手动操作,极大地提高了工作效率.

二、前置知识准备

如果想使用jenkins,你需要至少掌握以下知识:

java,maven,git,基础的linux命令

三、环境要求

  • Jenkins是用java开发的,所以部署环境需要有java环境;(现在的jenkins要求jdk至少11及以上,否则会出现无法启动,插件无法下载等问题)
  • 现在的项目大多数都是maven管理的,项目打包需要有maven环境;
  • 项目更新需要通过git来拉取,需要安装git;
  • 代码托管远程仓库可以搭建gitlab,当然也可以使用github或者gitee等远程仓库;
  • jenkins对服务器配置要求比较高,服务器内存至少要有4G(如果2G服务器全新环境没有其他项目运行的话可以跑)

四、搭建总览

1、Jenkins安装文件是一个war包,可以通过`java -jar xxx.war`启动,默认端口为8080

2、启动后会在服务器上输出初始化的密码,将密码复制到运行页面进行初始化

3、创建账号登录后,下载插件,配置git项目路径,maven存储仓库路径

4、配置构建项目的位置,前置后置

5、使用Jenkins测试构建项目

五、搭建

从Jenkins官网下载(下面步骤是安装在linux服务器上的)官网下载icon-default.png?t=N7T8https://www.jenkins.io/download/

具体操作如下:

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

使用国内镜像下载

 yum install https://mirror.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.401.2-1.1.noarch.rpm

下载完成后找到安装包位置

find / -name jenkins.war

启动服务

java -jar /usr/share/java/jenkins.war

效果如下:

会生成一串初始密码,说明Jenkins已经启动

打开浏览器 ip:8080进入Jenkins应用页面,复制密码

选择默认安装,然后就会下载插件,创建账户

完成安装,进入jenkins控制台

接下来需要给Jenkins配置maven,git等自定义配置

六、自定义配置

一、maven插件构建项目

首先确保服务器的git,maven是已经安装配置好的,安装过程不再赘述

maven3.8.6安装包:

链接:https://pan.baidu.com/s/1wVh3F32P1UiegBjrV6aXoA 
提取码:jxp8

ps:记得配置国内镜像

1、下载maven插件

然后安装完成后可以开始构建任务,控制台首页-构建新任务

2、配置git和maven

git

maven

3、配置好后,开始构建

控制台会实时打印输出

因为是第一次构建,需要下载jar包,时间会稍长

build success说明构建成功了

我们可以进入路径查看构建好的文件

运行一下项目看看

浏览器打开发现是可以访问的

当然这种手动启动项目的方式也是可以通过Jenkins来自动化启动

二、自动化启动项目

下载插件

安装好后配置服务器信息

设置完测试一下,如果success说明配置成功,保存

接下来配置已构建任务中的后续步骤

设置好后立即构建

构建完成后发现也自动启动好了项目

浏览器也能正常访问

至此,Jenkins自动构建项目并自动运行项目完成。

当然也有可以优化的地方,比如当更新构建时,可以在执行前先关闭项目运行,并把之前的项目文件先删除再更新;设置超时时间等,大家也可以动手试试。

参考文档:​​​​​​使用yum命令安装Jenkins时的常见问题及解决方案-CSDN博客

【尚硅谷】Jenkins教程(从配置到实战)_哔哩哔哩_bilibili

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

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

相关文章

通过 cloudflare 白嫖个人 docker 镜像加速服务

不知为何,现在大多数的 docker hub 镜像加速站都停止服务,而官方站点又因某些原因访问不到或延迟很高。所以,今天来记录一种通过 CloudFlare 搭建一个自己的镜像加速服务。 0、必看!!! 注意: 此…

pywebview打包本地的html

51.安装 pip install pywebview 2.新建start.py import webview import timeclass API:def say_hello(self, name):time.sleep(2) # 模拟一个耗时操作return fHello, {name}!def main():api API()webview.create_window(pywebview Example, index.html, js_apiapi)webview.…

抛弃Mybatis,拥抱新的ORM 框架!【送源码】

背景 转java后的几年时间里面一直在寻找一个类似.net的orm,不需要很特别的功能,仅希望90%的场景都可以通过强类型语法来编写符合直觉的sql,来操作数据库编写业务。 但是一直没有找到,Mybatis-Plus的单表让我在最初的时间段内看到…

利用golang_Consul代码实现Prometheus监控目标的注册以及动态发现与配置

文章目录 前言一、prometheus发现方式二、监控指标注册架构图三、部分代码展示1.核心思想2.代码目录3、程序入口函数剖析4、settings配置文件5、初始化配置文件及consul6、全局变量7、配置config8、公共方法目录common9、工具目录tools10、service层展示11、命令行参数12、Make…

Qt异常处理

初步警告:异常安全功能不完整!一般情况下应该可以工作,但类仍然可能泄漏甚至崩溃。 Qt本身不会抛出异常。而是使用错误码, 但是C可能会抛出异常。此外,有些类有用户可见的错误消息,例如QIODevice::errorString()或QSqlQuery::lastError()。这…

Android笔记-安装Termux开启ssh,安装vim、android-tool、python等

背景 家里面有个老手机,想将此手机做成一个家庭服务器。控制各种家电。目前准备先控制电视机 流程 用电脑usb连接手机,下载好Termux,在安卓手机上安装好。这里就不记录笔记了,各个手机不一样。 安装好进入手机后: …

Java短路逻辑运算符

Java中的运算符还有短路运算符。 其中就有符号 && 和 || 符号 作用 说明 && 短路与 结果和&相同,但是有短路效果 || 短路或 结果和|相同,但是有短路效果 注意事项: &和|&…

SIM卡将成为历史

近期苹果发布了全新款的 iPad Pro 和 iPad Air,这些新品不仅在性能和设计上带来了令人惊叹的进步,还悄然迎来了一项重要改变:eSIM 技术的支持。此次发布的蜂窝版本 iPad Pro 和 iPad Air 都不再配备物理 SIM 卡槽,这标志着苹果在推…

mfc140.dll是什么文件?mfc140.dll文件下载安装办法

一、mfc140.dll文件功能与作用 mfc140.dll作为Microsoft Foundation Classes库的一部分,提供了一系列的基础功能,这些功能对于开发Windows桌面应用程序至关重要。 2.1 应用程序框架 mfc140.dll封装了应用程序的生命周期管理,包括初始化、运…

Gorm 基础:表映射

这篇文章将以创建事件时间记录功能为示例,介绍如何使用 Gorm 完成数据库表的基本映射、简单的创建表数据操作和注意事项。 数据库表设计 设计一个事件时间记录功能通常需要记录事件的开始时间、结束时间和事件类型,以及一些额外的功能,像事…

代码生成技术技术-janino

文章目录 背景简单例子flink 例子 背景 代码生成技术适合在需要动态代码编译的场景中使用。比如大数据计算场景下,经常会要把flink sql 转成实际的执行计划 简单例子 代码是一个string 类型,直接用janino 编译后,就可以得到加载到jvm里的c…

北京地铁用什么数据结构来处理

北京地铁信息查询系统或相关数据分析系统可能会使用多种数据结构来高效地处理和存储信息。以下是几种可能用到的数据结构及其用途: 图(Graph):北京地铁线路可以被建模为一个有向加权图,其中每个站点是一个节点&#xf…

赶论文不用愁:如何利用ChatGPT在3小时内完成论文

在这份指南里,我将详细介绍如何运用ChatGPT 4.0的高级功能来辅助学术研究与文章写作。从挖掘研究课题的初步想法开始,到撰写一篇内容深刻、结构完整的学术论文,我将逐步演示如何在研究的各个阶段中充分利用ChatGPT。值得一提的是,…

编程精粹—— Microsoft 编写优质无错 C 程序秘诀 07:编码中的假象

这是一本老书,作者 Steve Maguire 在微软工作期间写了这本书,英文版于 1993 年发布。2013 年推出了 20 周年纪念第二版。我们看到的标题是中译版名字,英文版的名字是《Writing Clean Code ─── Microsoft’s Techniques for Developing》&a…

POSTMAN接口详解

Postman接口详解 Postman 是一个流行的API开发工具,广泛应用于测试、开发和文档编写。它支持发送各种HTTP请求,管理请求参数、标头、认证和脚本,帮助开发者快速调试和验证API接口的正确性。以下是对Postman接口的详细讲解。 Postman基本功能…

二进制炸弹的fp是什么?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

微信小程序组件

微信小程序组件课后小结 引言 随着移动互联网的快速发展,微信小程序已经成为开发者和用户的重要选择之一。小程序以其轻量化、易用性和高效性,为开发者提供了一种全新的开发方式,也为用户带来了更加便捷的服务体验。本文将对微信小程序组件的…

BigDecimal 小数位的处理(RoundingMode)

前言: 在日常项目开发中,接触小数是常有的事情,而产品对于小数的处理,在不同的业务中有不同的定义,比如四舍五入、截取、向上舍位、向下舍位等等场景,面对如此多的场景,你是否会束手无策&#…

【算法】优先级队列-基础与应用

优先级队列(Priority Queue)是一种特殊的队列类型,它允许在其元素中分配优先级。与传统的先进先出(FIFO)队列不同,优先级队列中元素的出队顺序取决于它们的优先级。优先级较高的元素会被优先处理&#xff0…

IOS Swift 从入门到精通: 结构体的访问控制、静态属性和惰性

文章目录 初始化器引用当前实例惰性属性静态属性和方法访问控制总结初始化器 初始化器是一种特殊方法,可提供创建结构体的不同方式。所有结构体都默认带有一个初始化器,称为成员初始化器- 它会要求您在创建结构体时为每个属性提供一个值。 User如果我们创建一个具有一个属性…