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

相关推荐
专注API从业者2 小时前
构建企业级 1688 数据管道:商品详情 API 的分布式采集与容错设计
大数据·开发语言·数据结构·数据库·分布式
代码游侠2 小时前
复习——线程(pthread)
linux·运维·开发语言·网络·学习·算法
Wnq100722 小时前
解构中心化困境:工业控制SCADA的延时与可靠性症结及分布式边缘计算转型路径
人工智能·分布式·云计算·去中心化·边缘计算
极地星光2 小时前
软件发布中.symbols文件夹单独发布全指南:从需求解析到自动化落地
运维·自动化
凯子坚持 c2 小时前
在家搭个私人云音乐库?用 Docker+cpolar 随时随地听歌
运维·docker·容器
!chen2 小时前
让镜像构建更轻量,告别 Docker 依赖
运维·docker·容器
aml258__2 小时前
一、Cisco( OSPF多区域与路由汇总技术实践:ABR优化网络路由表实验)251220
运维·网络·动态路由协议·网络优化·ospf多区域·abr·路由汇总
2503_930123932 小时前
Docker全阶段详解
运维·docker·容器
Web极客码2 小时前
使用 apt 和 dpkg 查看Ubuntu 22.04已安装的软件
linux·运维·ubuntu