持续集成工具Jenkins的使用之配置篇(二)

news2024/12/26 4:34:59

上一篇 :持续集成工具Jenkins的安装配置之安装篇(一)-CSDN博客

接上文

三.Jenkins配置

Jenkins配置主要是针对创建构建任务前做的一些基本配置,这些配置有些是必须的,有些是可以帮我们提高效率的,总之都是Jenkins管理员都要会的一些操作,如下配置都并非必设项,也没有固定顺序 ,完全根据个人需求来设置即可。

3.1 用户管理(创建用户)

当一个团队在使用Jenkins时,一般都会为不同角色创建不同账号,从而给为每个账号设置不同权限 ,这样就能相对安全的管理多个用户 。那么接下来我们就为Jenkins创建一个账号 。

创建步骤如下:

  1. 点击系统管理-管理用户节点 。

2. 进入的页面中点击新建用户 ,输入对应的新用户信息 。  

3. 新建后可以查看用户列表 。  

3.2 插件管理(添加插件)

很多时候,使用Jenkins时需要自己安装一些插件,以满足工作需求 。就比如若要在Jenkins界面上查看HTML格式的报告 ,这个时候你就需要安装一个名为HTML Publisher的插件 。具体安装什么插件,插件叫什么名字,这个需要提前知道 。

安装步骤如下:

  1. 点击系统管理-插件管理节点 。

 

2.  进入的页面中,切换到可选插件 ,在上面搜索框输入你要搜索的插件,比如我这里以HTML Publisher为例 。

3. 选中插件前的复选框,点击“Install without restart” .

4. 等待插件安装,安装后可重启Jenkins即生效 。  

说明:同样其它插件安装也是如此,需要你提前知道插件的名字 。

3.3 视图管理(添加视图)

视图可以对创建的任务进行分组显示, 分组的维度可以由管理员确定 ,此功能主要用户提高查询效率 。比如我这里以角色来进行分组 ,分为开发,测试,线上 。

具体操作步骤如下:

  1. 点击“新建视图”,输入视图名称 ,选择列表视图 。

  2. 进入新设置页,直接点击保存即可 。

  3. 添加视图后,我们后续新建的Job就会按视图进行分组管理。具体如下:

3.4 用户权限配置

当团队都在一个Jenkins时,用户的分组管理是非常有必要的 ,比如按照用户进行设置权限,不同的用户只能操作对应的视图或者只能进行相应的操作 。这样就会给多不必要的麻烦 。

具体操作步骤如下:

  1. 点击Manager Jenkins-Configure Gloabl Security

2.选择授权策略下的安全矩阵,点击Add user or group... ,将已存在的用户添加进来 。

3.根据上面的不同类型和人员进行矩阵选择 。

这样不同的人员登录Jenkins后,就会只能在权限范围内的功能可以操作,其它功能都是无法操作的 。

 

3.5 控制用户操作不同视图

虽然在上面我们已经介绍,可以为不同用户添加不同功能的操作权限 ,但有时候我们的Jenkins会有不同部门一起使用,比如开发部门,测试部分,运维部门等 。那么我们就会建几个不同的视图,每个角色只能在对应的视图下进行操作。按照上面的配置肯定是无法满足需求的,接下来我们就实现下这种需求 。

具体操作步骤如下:

  1. 下载插件:role-strategy ,下载地址:Role-based Authorization Strategy,进入下载列表页可以选择最后一个版本进行下载。

  2. 回到Jenkins中,点击Manager Jenkins-Manager Plugins - 高级 。在上传插件中选择本地已下载的插件进行上传 。

  3. 安装完成后,重启Jenkins

  4. 选择Manager Jenkins-Configure Global Security-Role-Based Strategy 。

  5. 选择Manager Jenkins-Manage and Assign Roles。

  6. 往里面添加不同角色,勾选上Overall中的Read,若向看其他视图中的任务,也可以在Job上勾选上可读 。

  7. 接下来就是在Item roles中添加不同的角色,然后为每个角色中匹配对应的关键字 。如我创建test账号,只允许下面展示以test开头的任务,那么就在Pattern中输入test.* 。这样在这个视图下就会只展示test开始的任务。

  8. 接下来进行分配角色,同样是在Manage and Assign Roles下面点击Assign Roles.

  9. 设置Global roles 和Item roles中的角色账号 ,最后点击保存。

  10. 使用其中一个账号登录进去查看,查看任务的分类显示 。

有时候也有这样的需求,比如test用户只能看test视图,其它的视图也不允许看,该怎么弄呢 ?其实就是在上面的权限控制中将任务中的查看权限取消掉就可以了,最后登录进来就变成了这样的。

3.6 全局配置工具

全局配置工具主要是对一些常用的工具进行配置,这些常用工具包括Maven、JDK、Git、Grade、Ant。你如果没有为这些工具配置环境变量,这时如果在Jenkins里执行这些命令就会报错。所以,为了避免出错,可以为你所使用的工具进行配置。

3.6.1 配置Maven
  1. 下载Maven,将Maven放在一个目录下(以Windows为例)

  2. 在Jenkins中点击Manager Jenkins - Global Tool Configuration 进入。

  3. 配置Maven settings.xml文件 .

  4. 将滚动条拉倒底部,选在Maven安装,将Install automatically前的复选框取消 。

  5. 配置Maven的环境变量 ,然后点击保存。具体如下:

3.6.2 配置JDK
  1. 下载并安装JDK。

  2. 点击Manager Jenkins - Global Tool Configuration 进入。

  3. 滚动JDK配置界面,配置JDK的安装路径,点击保存。

3.6.3 配置git
  1. 下载并安装git。

  2. 点击Manager Jenkins - Global Tool Configuration 进入。

  3. 滚动git配置界面,配置git的安装路径,点击保存。

3.6.4 配置Gradle
  1. 下载并安装Gradle。

  2. 点击Manager Jenkins - Global Tool Configuration 进入。

  3. 滚动Gradle配置界面,配置Gradle的安装路径,点击保存。

3.6.5 配置Ant
  1. 下载并安装Ant。

  2. 点击Manager Jenkins - Global Tool Configuration 进入。

  3. 滚动Ant配置界面,配置Ant的安装路径,点击保存。

 

3.7 系统配置

3.7.1 配置环境变量

有时候,在控制台会输出的日志中会出现乱码,多是因为编码问题导致的,所以,我们需要通过配置一些环境变量,使其使用的编码一致。这样就可以避免这个问题 。具体如设置如下:

  1. 点击Manage Jenkins(系统管理) - Configure System(系统设置)

  2. 切换到全局属性,复选框选择Environment variables(环境变量)。添加两组键值对,分别是:

    JAVA_TOOL_OPTIONS=Dfile.encoding=UTF8
    LANG=zh_CN.UTF-8
  3. 重新启动Jenkins 。

3.7.2 配置邮件通知

在Jenkins构建完成后,经常会通过邮件将构建结果发给团队成员,那么,如何在Jenkins中设置邮件通知呢 ? 同样需要在系统设置中配置如下几个参数 ,具体如下:

  1. 点击Manage Jenkins(系统管理) - Configure System(系统设置)

  2. 切换到Jenkins Location ,配置系统管理员邮件地址,备注:这个邮件地址相当于后续的邮件发送者 。

  3. 接下来配置Extended E-mail Notification.

  4. 继续切换到邮件通知,继续配置相关信息 。

  5. 根据上一步的说明,我们要配置邮箱通知,需要配置登录邮箱和授权码,接下来说明如何配置授权码 。(以163.com),先登录163邮箱。

  6. 点击设置,然后再点击POP3/SMTP/IMAP .

  7. 选择开启服务POP3/SMTP服务 ,如图所示 。

  8. 以上配置成功后,接下来的步骤就是在Job中配置‘构建后操作’,选择Editable Email Notification.

  9. 配置内容参数 。

  10. 选择发送者列表 。

  11. 如果觉得发送到邮件中的内容格式不是很好看,也可以对邮件正文设置模板,设置邮件模板同时是在系统设置中,找到Default Content 。在里面添加你自己定义好的模板即可 。以下为参考示例

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title> </head> <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> <div><h2>项目信息</h2> <ul><li>项目名称:${PROJECT_NAME}</li> <li>详细测试报告:<a href="${PROJECT_URL}HTML_20Report/">${PROJECT_URL}HTML_20Report/</a></li> <li>触发原因:${CAUSE}</li> <li>项目Url:<a href="${PROJECT_URL}">${PROJECT_URL}</a></li> </ul> <hr/> <h2>构建日志</h2> <div>${JELLY_SCRIPT,template="html"}</div> <hr/> </div> </body> </html>

3.8凭据管理

凭据(credentials)是访问其他系统的认证信息,可以是账号/密码、SSH密钥、加密文件等,Jenkins可以通过设置的凭据与其它第三方应用进行认证,在可信与可控的范围内,完成第三方交互。

以下就是添加凭据的具体操作步骤:

  1. 点击Manage Jenkins(系统管理) - Manage Credentials(凭据管理)

  2. 选择Stores scoped to Jenkins,点击Jenkins 。进入后,再点击全局凭据 。

  3. 点击添加凭据,弹出的界面输入具体主机信息 。

  4. 添加后就可在凭据列表中查看到,具体如下:

添加后的凭据就可以在Job中或者作为代理主机进行使用了 。

3.9 节点管理

Jenkins支持分布式构建,可以让一套代码在不同的代理机上运行。最大的好处就是避免多任务运行时出现等待 。

这里代理其实就是节点,如果你想要添加一个节点,就可以按照如下操作进行:

  1. 点击Manage Jenkins(系统管理) - Manage Nodes and Clouds(节点管理)

  2. 点击'新建节点',输入节点对应的名称,选择Permanent Agent,点击确定。

  3. 进入节点配置详情,将其它信息配置完成 。

  4. 添加成功后,会在列表中出现一个节点,点击此节点 。

  5. 点击'启动代理',Jenkins就会自动连接上代理机后将代理程序拷贝该主机上,并自动启动此服务 。这样代理机就会跟Master主机建立了连接 。

  6. 启动过程中可以看到启动日志,启动成功后会显示代理机的主机资源信息。

 

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

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

相关文章

CHS_06.2.2.4_2+调度算法:时间片轮转、优先级、多级反馈队列

CHS_06.2.2.4_2调度算法&#xff1a;时间片轮转、优先级、多级反馈队列 知识总览时间片轮转&#xff08;RR, Round-Robin&#xff09;例题例题时间片轮转&#xff08;RR, Round-Robin&#xff09;优先级调度算法例题优先级调度算法思考多级反馈队列调度算法多级反馈队列调度算法…

【算法练习】leetcode算法题合集之动态规划篇

普通动规系列 LeetCode343. 整数拆分 LeetCode343. 整数拆分 将10的结果存在索引为10的位置上&#xff0c;需要保证数组长度是n1&#xff0c;索引的最大值是n&#xff0c;索引是从0开始的。 n的拆分&#xff0c;可以拆分为i和n-i&#xff0c;当然i可以继续拆分。而且拆分为n-…

Linux 网络传输学习笔记

这篇是混合《Linux性能优化实战》以及 《Wireshark网络分析就这么简单》的一些关于Linux 网络的学习概念和知识点笔记 &#xff0c;主要记录网络传输流程以及对于TCP和UDP传输的一些影响因素 Linux 网络传输流程 借用一张倪朋飞先生的《Linux性能优化实战》课程中的图片 接收流…

OVL assertion checker

目录 单周期断言&#xff1a; 1、ovl_always&#xff1a; 功能描述&#xff1a; ovl和assert_always例子&#xff1a;​编辑​编辑 详细介绍&#xff1a; 2、ovl_implication&#xff1a; 功能描述&#xff1a; 例子&#xff1a; 详细介绍&#xff1a; 3、ovl_never…

JDWP原理分析与漏洞利用

JDWP(Java DEbugger Wire Protocol):即Java调试线协议,是一个为Java调试而设计的通讯交互协议,它定义了调试器和被调试程序之间传递的信息的格式。说白了就是JVM或者类JVM的虚拟机都支持一种协议,通过该协议,Debugger 端可以和 target VM 通信,可以获取目标 VM的包括类…

Sphinx的原理详解和使用

一、Sphinx介绍 1.1 简介 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎。意图为其他应用提供高速、低空间占用、高结果 相关度的全文搜索功能。Sphinx可以非常容易的与SQL数据库和脚本语言集成。当前系统内置MySQL和PostgreSQL 数据库数据源的支持&#xff0c;也…

455. 分发饼干 - 力扣(LeetCode)

题目描述 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼干 j&#xff0c;都有一个尺…

作者推荐 | 【深入浅出MySQL】「底层原理」探秘缓冲池的核心奥秘,揭示终极洞察

探秘缓冲池的核心奥秘&#xff0c;揭示终极洞察 缓存池BufferPool机制MySQL缓冲池缓冲池缓冲池的问题 缓冲池的原理数据预读程序的局部性原则&#xff08;集中读写原理&#xff09;时间局部性空间局部性 innodb的数据页查询InnoDB的数据页InnoDB缓冲池缓存数据页InnoDB缓存数据…

区间dp/线性dp,HDU 4293 Groups

一、题目 1、题目描述 After the regional contest, all the ACMers are walking alone a very long avenue to the dining hall in groups. Groups can vary in size for kinds of reasons, which means, several players could walk together, forming a group.   As the …

RuoYi-Vue前后端分离后台开发框架运行详细教程

一、官网下载代码 RuoYi-Vue是一款基于SpringBootVue的前后端分离极速后台开发框架。 若依官网&#xff1a;http://ruoyi.vip演示地址&#xff1a;http://vue.ruoyi.vip代码下载&#xff1a;https://gitee.com/y_project/RuoYi-Vue 下载之后解压&#xff0c;ruoyi-ui是前端代…

【JavaWeb】过滤器 Filter

文章目录 过滤器是什么&#xff1f;一、过滤器概述二、过滤器工作位置图解三、Filter接口API四、过滤器使用4.1 定义一个过滤器类,编写功能代码&#xff1a;4.2 xml配置&#xff1a;4.3 定义 servletG 目标资源 模拟测试 :4.4 过滤图解 五、过滤器生命周期六、过滤器链的使用6.…

香港服务器IP段4c和8c的区别及SEO选择建议

随着互联网的快速发展&#xff0c;服务器IP段的选择对于网站SEO优化至关重要。香港服务器IP段4C和8C是两种常见的IP段&#xff0c;它们在SEO优化中具有不同的特点和优势。本文将详细介绍这两种IP段的区别&#xff0c;并给出相应的SEO选择建议。 一、香港服务器IP段4C和8C的区别…

每日coding 2846. 边权重均等查询 236. 二叉树的最近公共祖先 35. 搜索插入位置 215. 数组中的第K个最大元素 2. 两数相加

2846. 边权重均等查询 xs&#xff0c;已放弃&#xff0c;考到直接寄 236. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&…

向量表示在自然语言、知识图谱和图像视觉中的应用

目录 前言1 不同应用的向量表示1.1 自然语言中的向量表示1.2 知识图谱中的向量表示1.3 图像视觉中的向量表示 2 词的向量表示2.1 One-hot encoding的限制2.2 Bag-of-Words模型的不足2.3 Word Embedding的引入2.4. 词的分布式表示与语境关系 3 词向量模型3.1 CBoW&#xff08;Co…

swagger2 和 knife4j 整合

swagger整合knife4j 导入依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</version></dependency>引入配置 我们自己写一个配置类也好,我这里写…

乐观锁的底层实现以及如何解决ABA问题

什么是乐观锁&#xff1f;乐观锁底层是如何实现的&#xff1f; 乐观锁是一种并发控制的策略。在操作数据的时候&#xff0c;线程读取数据的时候不会进行加锁&#xff0c;先去查询原值&#xff0c;操作的时候比较原来的值&#xff0c;看一下是都被其他线程修改&#xff0c;如果…

OpenHarmony—TypeScript到ArkTS约束说明

对象的属性名必须是合法的标识符 规则&#xff1a;arkts-identifiers-as-prop-names 级别&#xff1a;错误 在ArkTS中&#xff0c;对象的属性名不能为数字或字符串。通过属性名访问类的属性&#xff0c;通过数值索引访问数组元素。 TypeScript var x { name: x, 2: 3 };c…

STM32标准库开发—W25Q64详细介绍

W25Q64简介 Flash编程原理都是只能将1写为0&#xff0c;而不能将0写成1.所以在Flash编程之前&#xff0c;必须将对应的块擦除&#xff0c;而擦除的过程就是将所有位都写为1的过程&#xff0c;块内的所有字节变为0xFF.因此可以说&#xff0c;编程是将相应位写0的过程&#xff0c…

Ubuntu 22.04 安装tomcat

tomcat是常用的Java服务容器,这篇文章我们就来讲讲如何安装它。 更新软件包 首先是更新软件包,这是最常规的操作 sudo apt update 然后是开始安装,不多一会就可以安装好了 sudo apt install tomcat9 然后看一下状态 sudo systemctl status tomcat9 发现虽然启动了,但…

IS-IS:03 ISIS链路状态数据库

一个 OSPF 链路状态数据库是若干条 LSA 的集合。与此相似&#xff0c;一个 IS-IS 链路状态数据库是若干条 LSP 的集合。与 OSPF 链路状态数据库不同&#xff0c; IS-IS 链路状态数据库有 level-1 和 level-2 之分。 在IS-IS 协议中&#xff0c;每一条 LSP 都有一个剩余生存时间…