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

如何利用Jenkins自动化管理、部署数百个应用

目录

1. Jenkins 安装与部署步骤

1.1 系统要求

1.2 安装步骤

1.2.1 Windows 系统

1.2.2 CentOS 系统

1.3 初次配置

2. Gradle 详细配置方式

2.1 安装 Gradle

2.1.1 Windows 系统

2.1.2 CentOS 系统

2.2 配置 Jenkins 中的 Gradle

3. JDK 详细配置方式

3.1 安装 JDK

3.1.1 Windows 系统

3.1.2 CentOS 系统

3.2 配置 Jenkins 中的 JDK

4. 用户授权的详细步骤

4.1 创建用户

4.2 配置用户权限

5. 主要功能介绍

5.1 持续集成(CI)

5.2 持续交付(CD)

5.3 插件支持

5.4 用户管理

6. 项目配置方式

6.1 Java 项目的配置方式

6.2 C# 项目的配置方式

6.3 Python 项目的配置方式

7. Jenkins 的优势特点

7.1 开源与社区支持

7.2 灵活的配置

7.3 强大的自动化能力

7.4 扩展性


博主Jekins界面展示

可以看到博主用Jenkins管理了179个项目

//在Jenkins的 Script Console可以查看总项目数
def jobs = Jenkins.instance.getAllItems()
println "Total number of jobs: ${jobs.size()}"

Jenkins 是一款流行的开源自动化服务器,用于持续集成(CI)和持续交付(CD)。它能帮助开发团队自动化构建、测试和部署过程。本文将详细介绍 Jenkins 的安装部署步骤、Gradle 和 JDK 的配置方式、用户授权的详细步骤、主要功能介绍,以及如何配置 Java、C# 和 Python 项目。同时,举例说明在 Windows 和 CentOS 系统上的具体操作步骤。

1. Jenkins 安装与部署步骤

1.1 系统要求

在安装 Jenkins 之前,请确保你的系统满足以下要求:

  • 操作系统: Windows 或 CentOS
  • Java: Jenkins 需要 Java 运行时环境(JRE)或 Java 开发工具包(JDK)。建议使用 Java 11 或更高版本。

1.2 安装步骤

1.2.1 Windows 系统

下载 Jenkins 安装包:

访问 Jenkins 官方网站 Jenkins Downloads。

选择 Windows 平台,下载 .msi 安装包。

运行安装包:

双击下载的 .msi 文件,启动安装程序。

按照安装向导的提示完成安装。可以选择安装路径和设置 Jenkins 的端口(默认是 8080)。

启动 Jenkins:

安装完成后,Jenkins 会自动启动。在浏览器中访问 http://localhost:8080。

1.2.2 CentOS 系统

安装 Java:

sudo yum install java-11-openjdk-devel

添加 Jenkins 仓库和安装 Jenkins:

sudo wget -O /etc/yum.repos.d/jenkins.repo \https://pkg.jenkins.io/redhat/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.keysudo yum install jenkins

启动 Jenkins 服务:

sudo systemctl start jenkinssudo systemctl enable jenkins

访问 Jenkins:

在浏览器中访问 http://localhost:8080。

1.3 初次配置

解锁 Jenkins:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

将密码粘贴到浏览器中的解锁页面。

安装推荐插件:

解锁后,选择安装推荐插件,这将提供 Jenkins 的基本功能。

创建第一个管理员用户:

按照提示创建管理员账户,配置基本的系统设置。

2. Gradle 详细配置方式

2.1 安装 Gradle

2.1.1 Windows 系统

下载 Gradle:

访问 Gradle Releases 页面,下载最新的 zip 文件。

解压并配置环境变量:

解压下载的文件到指定目录(如 C:\Gradle)。

配置环境变量:

GRADLE_HOME: 指向解压目录。

Path: 添加 GRADLE_HOME\bin 到系统 Path 变量中。

验证安装:

在命令行中执行 gradle -v 以确认安装成功。

2.1.2 CentOS 系统

安装 Gradle:

sudo yum install gradle

验证安装:

在终端中执行 gradle -v 以确认安装成功。

2.2 配置 Jenkins 中的 Gradle

安装 Gradle 插件:

在 Jenkins 中,转到 “管理 Jenkins” > “插件管理” > “可用” 标签页,搜索并安装 “Gradle” 插件。

配置 Gradle:

转到 “管理 Jenkins” > “全局工具配置”。

在 “Gradle” 部分,点击 “添加 Gradle” 并配置 Gradle 的安装路径或选择自动安装。

3. JDK 详细配置方式

3.1 安装 JDK

3.1.1 Windows 系统

下载 JDK:

访问 Oracle JDK 下载页面 或 OpenJDK 下载页面,下载适合你系统的 JDK 安装包。

安装 JDK:

运行下载的安装包,按照提示完成安装。

配置环境变量:

配置 JAVA_HOME 环境变量,指向 JDK 的安装目录。

将 JAVA_HOME\bin 添加到 Path 变量中。

验证安装:

在命令行中执行 java -version 和 javac -version 以确认安装成功。

3.1.2 CentOS 系统

安装 OpenJDK:

sudo yum install java-11-openjdk-devel

配置环境变量:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdkexport PATH=$JAVA_HOME/bin:$PATH

运行 source /etc/profile 使更改生效。

验证安装:

在终端中执行 java -version 和 javac -version 以确认安装成功。

3.2 配置 Jenkins 中的 JDK

安装 JDK 插件:

通常 Jenkins 自带 JDK 配置功能,无需额外插件。

配置 JDK:

转到 “管理 Jenkins” > “全局工具配置”。

在 “JDK” 部分,点击 “添加 JDK” 并配置 JDK 的安装路径或选择自动安装。

4. 用户授权的详细步骤

4.1 创建用户

访问用户管理:

在 Jenkins 主界面,点击 “管理 Jenkins” > “管理用户”。

添加新用户:

点击 “创建用户”,填写用户名、密码、全名和电子邮件地址。

4.2 配置用户权限

访问权限管理:

在 “管理 Jenkins” > “配置全局安全” 中,选择合适的安全设置(如基于角色的权限控制)。

配置角色权限:

在 “角色策略” 插件中,定义不同的角色和权限(如管理员、开发者、查看者等)。

分配角色:

将用户分配到相应的角色,并配置其权限。

5. 主要功能介绍

5.1 持续集成(CI)

  • 自动化构建: Jenkins 可以监控源代码管理系统(如 Git),自动触发构建任务。
  • 构建历史: 提供详细的构建历史记录,帮助分析构建过程中的问题。

5.2 持续交付(CD)

  • 自动部署: 支持将构建好的应用自动部署到测试环境或生产环境。
  • 管道支持: 通过 Jenkins Pipeline 插件定义和执行复杂的构建和部署流水线。

5.3 插件支持

  • 插件生态: Jenkins 拥有丰富的插件生态系统,支持各种编程语言、构建工具和部署平台。

5.4 用户管理

  • 权限控制: 支持基于角色的访问控制,管理不同用户的权限。

6. 项目配置方式

6.1 Java 项目的配置方式

创建 Java 项目任务:

点击 “新建任务”,选择 “自由风格项目” 或 “流水线”。

配置源码管理:

在源码管理部分,选择 Git 并输入仓库 URL。

配置构建步骤:

在 “构建” 部分,选择 “Invoke Gradle script” 或 “Invoke Ant” 来构建 Java 项目。

输入 Gradle 或 Ant 的构建命令。

配置构建后操作:

设置构建后的操作,如生成报告、归档构件等。

6.2 C# 项目的配置方式

安装必要插件:

在 Jenkins 中,转到 “管理 Jenkins” > “插件管理”,安装 “MSBuild” 插件。

创建 C# 项目任务:

点击 “新建任务”,选择 “自由风格项目”。

配置源码管理:

在源码管理部分,选择 Git 并输入仓库 URL。

配置构建步骤:

在 “构建” 部分,选择 “构建步骤” 下的 “MSBuild”。

配置 MSBuild 的路径和构建项目的解决方案文件(.sln)。

配置构建后操作:

可以设置测试结果报告和构建产物的归档等操作。

6.3 Python 项目的配置方式

安装必要插件:

在 Jenkins 中,转到 “管理 Jenkins” > “插件管理”,安装 “ShiningPanda” 插件。

创建 Python 项目任务:

点击 “新建任务”,选择 “自由风格项目”。

配置源码管理:

在源码管理部分,选择 Git 并输入仓库 URL。

配置构建步骤:

在 “构建” 部分,选择 “构建步骤” 下的 “虚拟环境” 来配置 Python 环境。

输入运行测试和构建的命令,如 python setup.py install 和 pytest。

配置构建后操作:

可以设置生成测试报告和归档构件等操作。

7. Jenkins 的优势特点

7.1 开源与社区支持

  • 开源: Jenkins 是一个开源项目,具有丰富的社区支持和活跃的开发者社区。
  • 插件生态: 提供大量的插件,支持各种构建工具和部署平台。

7.2 灵活的配置

  • 流水线: 支持通过 Jenkins Pipeline 定义复杂的构建和部署流程,使用 Groovy 脚本来编写。
  • 支持多语言: 支持 Java、C#、Python 等多种编程语言的构建和部署。

7.3 强大的自动化能力

  • 自动化测试: 能够与各种测试框架集成,实现自动化测试和报告。
  • 持续交付: 支持将构建结果自动部署到测试或生产环境,实现持续交付。

7.4 扩展性

  • 插件系统: 丰富的插件系统允许用户根据需求扩展 Jenkins 的功能。
  • 自定义配置: 支持通过插件和脚本进行高度定制的配置。

通过以上步骤,你可以在 Windows 或 CentOS 系统上成功安装和配置 Jenkins,并根据项目需求配置 Gradle、JDK、用户授权和不同编程语言的构建过程。Jenkins 的优势特点使其成为开发团队自动化构建和部署的强大工具。

常用链接:

Jenkins各个版本稳定版War包下载:War Jenkins Packages

相关文章:

如何利用Jenkins自动化管理、部署数百个应用

目录 1. Jenkins 安装与部署步骤 1.1 系统要求 1.2 安装步骤 1.2.1 Windows 系统 1.2.2 CentOS 系统 1.3 初次配置 2. Gradle 详细配置方式 2.1 安装 Gradle 2.1.1 Windows 系统 2.1.2 CentOS 系统 2.2 配置 Jenkins 中的 Gradle 3. JDK 详细配置方式 3.1 安装 JD…...

Java之归并排序

归并排序 归并排序(Merge Sort)算法,使用的是分治思想。分治,顾名思义,就是分而治之,将一个大问题分解成小的子问题来解决。小的子问题解决了,大问题也就解决了。 核心源码: mergeSort(m->n) merge(mergeSort(m-&g…...

了解ChatGPT API

要了解如何使用 ChatGPT API,可以参考几个有用的资源和教程,这些资源能帮助你快速开始使用 API 进行项目开发。下面是一些推荐的资源: OpenAI 官方文档: 访问 OpenAI 的官方网站可以找到 ChatGPT API 的详细文档。这里包括了 API …...

EasyAnimate - 阿里开源视频生成项目,国产版Sora,高质量长视频生成 本地一键整合包下载

EasyAnimate是阿里云人工智能平台PAI自主研发的DiT-based视频生成框架,它提供了完整的高清长视频生成解决方案,包括视频数据预处理、VAE训练、DiT训练、模型推理和模型评测等。在预训练模型的基础上,EasyAnimate可通过少量图片的LoRA微调来改…...

7月23日JavaSE学习笔记

异常: 程序中一些程序处理不了的特殊情况 异常类 Exception 继承自 Throwable 类(可抛出的) Throwable继承树 Error:错误/事故,Java程序无法处理,如 OOM内存溢出错误、内存泄漏...会导出程序崩溃 常见的…...

Linux——DNS服务搭建

(一)搭建nginx 1.首先布置基本环境 要求能够ping通外网,有yum源 2.安装nginx yum -y install nginx 然后查看验证 3.修改网页配置文件 修改文件,任意编写内容,然后去物理机测试 (二)创建一…...

C#中的wpf基础

在WPF中,Grid 是一种非常强大的布局控件,用于创建网格布局。它允许你将界面划分为行和列,并将控件放置在这些行和列中。 以下是一些关键点和示例,帮助你理解 WPF 中的 Grid: 基本属性 RowDefinitions:定义…...

基于微信小程序+SpringBoot+Vue的刷题系统(带1w+文档)

基于微信小程序SpringBootVue的刷题系统(带1w文档) 基于微信小程序SpringBootVue的刷题系统(带1w文档) 本系统是将网络技术和现代的管理理念相结合,根据试题信息的特点进行重新分配、整合形成动态的、分类明确的信息资源,实现了刷题的自动化,…...

SSH -i的用法

缘起 今天使用ssh -i指定私钥时遇到以下错误: WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions 0644 for /home/ken/.ssh/my.pem are too open. It is required that your private key files are NOT accessible by others. This private key will b…...

小白学习webgis的详细路线

推荐打开boss直聘搜索相关岗位,查看岗位要求,对症下药是最快的。 第一阶段:基础知识准备 计算机基础 操作系统:理解Windows、Linux或macOS等操作系统的基本操作,学会使用命令行界面。网络基础:掌握TCP/I…...

使用ChatGPT来撰写和润色学术论文的教程(含最新升级开通ChatGpt4教程)​​

现在有了ChatGPT4o更加方便了, 但次数太少了 想要增加次数可以考虑升级开桶ChatGpt4​​ ( OPENAI4 可以减2刀) 一、引言 在学术研究中,撰写高质量的论文是一项重要的技能。本教程将介绍如何利用ChatGPT来辅助完成从论文构思到润色的全过程…...

常见的 HTTP 状态码分类及说明

HTTP 响应状态码(HTTP status code),表示服务器对请求的处理结果。常见的 HTTP 状态码有以下几类: 1xx: 信息响应 (Informational Responses) 100 Continue: 请求已收到,客户端应继续发送请求的其余部分。101 Switch…...

Leetcode700.二叉搜索树中搜索具体值

二叉搜索树的定义: 一颗空树或者具有以下性质的二叉树: 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值;任意节…...

自动导入unplugin-auto-import+unplugin-vue-components

文章介绍 接下来将会以Vite Vue3 TS的项目来举例实现 在我们进行项目开发时,无论是声明响应式数据使用的ref、reactive,或是各种生命周期,又或是computed、watch、watchEffect、provide-inject。这些都需要前置引入才能使用: …...

Conda修改包/虚拟环境储存目录

Conda修改包/虚拟环境储存目录 关键字样例 关键字 通过conda config --show [key]可以查看某个配置的值,[key]留空可以查看所有配置 其中: envs-dirs 存放虚拟环境的储存目录pkgs_dirs 包的目录 通过conda config --add [key] [value]可以为配置添加值…...

Live555源码阅读笔记:哈希表的实现(C++)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...

警务平台app

智慧公安以大数据、云计算、人工智能、物联网和移动互联网技术为支撑,以“打、防、管、控”为目的,综合研判为核心,共享信息数据资源,融合业务功能,构建公安智慧大数据平台,实现公安信息数字化、网络化和智…...

Java代理模式详解

Java代理模式详解 概念 代理模式是一种设计模式,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。在Java中,代理…...

docker centos镜像 npm安装包时报错“npm ERR! code ECONNRESET”

1.采用新的镜像地址 npm config set registry https://registry.npmmirror.com2.清理缓存 npm cache clean --force3.安装yarn npm install -g yarn4. 安装模块 在node_modules 同级目录执行下面命令: yarn add napi-build-utils env-paths express ejs cors …...

Angular中component和directive的区别?

在Angular中,Component和Directive都是重要的构建块,用于构建和组织应用程序的UI。然而,它们有不同的用途和特点。以下是Component和Directive的主要区别: Component(组件) 1、定义:Component…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求&#xff…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...