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

相关推荐
日取其半万世不竭1 小时前
LVM 逻辑卷管理:不停机扩容磁盘的正确方式
运维·服务器
身如柳絮随风扬2 小时前
多数据源切换实战:从业务场景到3种实现方案全解析
java·分布式·微服务
优化Henry2 小时前
TDD-LTE站点Rilink=3链路故障处理案例---BBU侧C口“有发光、无收光”的排查与恢复
运维·网络·信息与通信·tdd
浪客灿心2 小时前
Linux网络传输层协议
linux·运维·网络
V搜xhliang02462 小时前
OpenClaw科研全场景用法:从文献到实验室的完整自动化方案
运维·开发语言·人工智能·python·算法·microsoft·自动化
遇见火星3 小时前
Nginx限流配置:防止接口被刷,服务器稳如泰山
运维·服务器·nginx
计算机安禾3 小时前
【Linux从入门到精通】第49篇:服务器故障排查终极指南——思路决定出路
linux·运维·服务器
古月-一个C++方向的小白3 小时前
Linux——初识文件
linux·运维·服务器
AIMath~3 小时前
雪花算法+ZooKeeper解决方案+RPC是什么
分布式·zookeeper·云原生
KmSH8umpK3 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第六篇
数据库·redis·分布式