当前位置: 首页 > news >正文

快速搭建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

相关文章:

  • 高效、智能、安全:小型机房EasyCVR+AI视频综合监控解决方案
  • 为数据安全护航,袋鼠云在数据分类分级上的探索实践
  • Spring Bean详解
  • 嵌入式实验---实验二 中断功能实验
  • 【计算机网络】[第4章 网络层][自用]
  • vue3+ts 使用vue3-ace-editor实现Json编辑器
  • NV-Embed论文阅读笔记
  • 【OpenHarmony4.1 之 U-Boot 2024.07源码深度解析】008 - make distclean 命令解析
  • COUNT(id) 和 COUNT(1) 的区别
  • NLP入门——复杂函数建模与链式求导
  • 高速公路收费图片分析系统深入理解
  • HTML5和CSS3总结
  • Gone框架介绍29 - 在Gone中使用gRPC通信
  • 【MySQL】数据库
  • opencascade AIS_InteractiveContext源码学习1 object display management 对象显示管理
  • 【译】JS基础算法脚本:字符串结尾
  • Docker入门(二) - Dockerfile
  • ES6--对象的扩展
  • FastReport在线报表设计器工作原理
  • JavaScript实现分页效果
  • Java反射-动态类加载和重新加载
  • LintCode 31. partitionArray 数组划分
  • mysql 数据库四种事务隔离级别
  • Netty 4.1 源代码学习:线程模型
  • ubuntu 下nginx安装 并支持https协议
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 初识 webpack
  • 大数据与云计算学习:数据分析(二)
  • 给初学者:JavaScript 中数组操作注意点
  • 基于HAProxy的高性能缓存服务器nuster
  • 基于web的全景—— Pannellum小试
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​【已解决】npm install​卡主不动的情况
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​zookeeper集群配置与启动
  • #### go map 底层结构 ####
  • #14vue3生成表单并跳转到外部地址的方式
  • #FPGA(基础知识)
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (2022 CVPR) Unbiased Teacher v2
  • (javaweb)Http协议
  • (六)DockerCompose安装与配置
  • (四) 虚拟摄像头vivi体验
  • (循环依赖问题)学习spring的第九天
  • (转)visual stdio 书签功能介绍
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • ***监测系统的构建(chkrootkit )
  • ./configure,make,make install的作用
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记