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

相关推荐
虎头金猫6 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
AI职业加油站6 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏6 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
-梅6 天前
linux(8) 软硬链接
linux·运维·服务器
张洛闻Eren6 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
其实防守也摸鱼6 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
布裘6 天前
【银河麒麟】V4桌面图标消失,右击鼠标没反应排查
运维·银河麒麟·桌面环境
Thomas.Sir6 天前
第21课:PyTorch|GPU多卡训练与分布式训练基础【让多卡并行成为你的加速引擎】
人工智能·pytorch·分布式
懂软件的胡子个哥6 天前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发
Cicada1286 天前
库存消息消费的正确性设计——从幂等窗口到批量流水线
分布式·系统架构