Jenkins(分布式、用户管理)

文章目录

Jenkins分布式构建环境

Jenkins系统架构

在Jenkins 2中,节点是一个基础概念,代表了任何可以执行Jenkins任务的系统

  • 采用master/agent架构,因而其节点可划分主节点(master)和代理节点(agent)两种类型,代理节点也被称为从节点(slave)

  • 主节点负责提供UI、处理HTTP请求及管理构建环境等,而代理节点则主要负责执行构建任务

    主节点压力过大,通过备节点执行对应任务,缓解主节点压力

执行器:代表节点或主节点用于执行任务的一个槽位

  • 这个槽位的数量定义了该节点的并发任务量,一般与CPU核心有关

添加节点流程

(1)准备节点安装JDK(要和主节点JDK一样)把密钥分发到新节点

shell 复制代码
#1.比如将docker01这个节点作为Jenkins的agent
#2.Jenkins复制密钥到docker01节点
scp -rp /root/.ssh/* 172.16.1.118:~/.ssh/
#3.docker01 agent节点安装java,要和主节点的java版本一致
yum install -y wget ; mkdir -p /download ; wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz -O /download/openjdk-21.0.2_linux-x64_bin.tar.gz

tar -zxvf /download/openjdk-21.0.2_linux-x64_bin.tar.gz -C /usr/local/
ln -s /usr/local/jdk-21.0.2 /usr/local/java

echo 'export JAVA_HOME=/usr/local/java' >> /etc/profile
echo 'export PATH=${PATH}:$JAVA_HOME/bin' >> /etc/profile
source  /etc/profile

(2)Jenkins页面添加Agent节点与配置,检查是否启动

(3)配置任务绑定节点

要使用的话,还要配置相关的hosts解析

高可用

Jenkins子节点功能,适用于分担主节点的压力

如果Jenkins主节点挂了,子节点无法使用

如果想在主节点挂了,还想保持jenkins可用性,需要做高可用

Jenkins用户管理与权限设置

  • 基于roles权限控制
  • roles权限的集合。roles与用户或用户组关联
  • Jenkins默认每个用户的权限都是最高权限,需要让用户与任务关联(RBAC)
  • Jenkins文件夹也支持RBAC授权管理机制,我们可以在Jenkins上安装RBAC授权插件后基于角色来分配文件夹的管理权限

RBAC 插件是 Jenkins 权限管理的核心工具,核心思想是「用户→角色→权限」的三层映射:先定义角色并分配权限,再将角色分配给用户,实现权限的精细化、可扩展管理(替代 Jenkins 默认的粗粒度权限系统)。

概念 作用(新手友好) 类比场景
用户(User) 登录 Jenkins 的账号(本地用户 / LDAP 域用户) 公司员工(如小明、小红)
角色(Role) 权限的集合(预定义好 "能做什么、不能做什么") 公司岗位(如开发、测试、管理员)
权限(Permission) 具体操作许可(如 "查看项目""触发构建""修改配置") 岗位职责(如开发能写代码、测试能测功能)
角色类型 作用范围 典型用途
全局角色(Global Roles) 整个 Jenkins 系统(所有项目) 管理员权限、全局只读权限(如查看 Jenkins 首页)
项目角色(Item Roles) 仅匹配指定规则的项目 项目开发权限(仅操作自己负责的项目)、项目只读权限

流程

  1. 添加用户dev01
  2. 安装RBAC插件,开启RBAC认证,默认每个用户都是最高权限
  3. 添加roles全局权限,添加对于任务的权限
  4. 权限与用户关联
  5. 测试

详细步骤

(1)添加用户dev01

(2)安装并开启RBAC插件

开启RBAC认证,默认每个用户都是最高权限

安装

开启RBAC认证

(3)添加角色的权限

(4)用户关联角色

(5)测试

解决Jenkins设置管理员后登陆提示::Access Denied admin没有Overall/Read权限、

去掉如下内容,重启jenkins即可

相关推荐
IT邦德11 小时前
Dify1.6基于ubuntu系统的部署实战
linux·运维·ubuntu
蓝速科技12 小时前
蓝速科技会议电子门牌规模化部署与运维成本实测
运维·科技
许彰午12 小时前
# allbytaskid——一个接口扛六个DataStore
运维·服务器·php
牛奶咖啡1312 小时前
AI助力运维——AIGC运维应用实践—Deepseek的介绍与本地部署选型
运维·人工智能·deepseek·deepseek能做什么·deepseek本地部署配置·本地部署选型避坑原则·本地部署的典型方案
木白CPP13 小时前
Linux 驱动UART子系统源码分析
linux·运维·服务器·驱动开发·嵌入式硬件·开源软件
-今昭-13 小时前
HAProxy 负载均衡部署
运维·负载均衡
RisunJan13 小时前
Linux命令-times(进程累计时间显示)
linux·运维·chrome
xiaoxiangsiyan14 小时前
RHCE2026完整版全知识点清单
运维·网络·学习·自动化·rhce
风控PM说14 小时前
自动化风控策略生成:基于决策树的方法
运维·决策树·自动化
FserSuN14 小时前
回顾Spark的概念与应用
大数据·分布式·spark