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即可

相关推荐
凯子坚持 c17 分钟前
CANN 生态中的分布式训练利器:深入 `collective-ops` 项目实现高效多卡协同
分布式
tianyuanwo18 分钟前
企业级NTP客户端配置指南:基于内部NTP服务器的实践
运维·服务器·ntp客户端
芷栀夏23 分钟前
CANN开源实战:基于DrissionPage构建企业级网页自动化与数据采集系统
运维·人工智能·开源·自动化·cann
寄存器漫游者1 小时前
Linux 软件编程 - IO 编程
linux·运维·spring
charlotte102410241 小时前
高并发:关于在等待学校教务系统选课时的碎碎念
java·运维·网络
gaize12131 小时前
Moltbot(Clawdbot) 专属轻量服务器
运维·服务器
惊讶的猫1 小时前
rabbitmq实践小案例
分布式·rabbitmq
鸽芷咕2 小时前
DrissionPage 成 CANN 仓库爆款自动化工具:背后原因何在?
运维·python·自动化·cann
池央2 小时前
CANN 算子生态的深度演进:稀疏计算支持与 PyPTO 范式的抽象层级
运维·人工智能·信号处理
OJAC1112 小时前
当所有人都在说“运维稳了”,近屿智能看到了另一种可能
运维