文章目录
- Jenkins分布式构建环境
- 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) | 仅匹配指定规则的项目 | 项目开发权限(仅操作自己负责的项目)、项目只读权限 |
流程
- 添加用户dev01
- 安装RBAC插件,开启RBAC认证,默认每个用户都是最高权限
- 添加roles全局权限,添加对于任务的权限
- 权限与用户关联
- 测试
详细步骤
(1)添加用户dev01



(2)安装并开启RBAC插件
开启RBAC认证,默认每个用户都是最高权限
安装

开启RBAC认证

(3)添加角色的权限

(4)用户关联角色

(5)测试

解决Jenkins设置管理员后登陆提示::Access Denied admin没有Overall/Read权限、
去掉如下内容,重启jenkins即可
