1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

Jenkins用户权限管理

1987web2023-10-06WEB开发89

点击上方头像关注我,每周上午 09:00准时推送,每月不定期赠送技术书籍,小窗口回复资源、测试工具包领取测试资源。

本文1905字,阅读约需5分钟

Hi,大家好。在上一篇Jenkins系列文章:Jenkins介绍及安装,主要介绍Jenkins简介、docker安装Jenkins及Jenkins配置。

在Jenkins做项目构建及持续集成过程中,我们需要考虑权限问题。比如不同项目组用户只能看到自己项目的任务,那如何实现用户权限管理呢,接下来我们详细介绍。

准备工作

为了测试权限控制,我们首先创建两个新的用户,后续会给这两个用户赋予权限。

①首页, 依次点击系统管理-全局安全配置。

② 勾选允许用户注册,然后点击保存。

③ 退出当前登录,在登录首页点击创建一个用户账号。

④ 我分别创建了两个账号:ITesterA,ITesterB。

安装权限控制插件

Jenkins提供了多种权限控制插件,我们这里使用Role-based Authorization Strategy。

① 首页,依次点击系统管理-->插件管理。

② 可选插件,搜索Role-based Authorization Strategy,勾选后下载插件。

③ 首页依次点击,系统管理->全局安全配置,授权策略选择 Role-Based Strategy。

创建角色

① 首页,依次点击系统管理-->Manage and Assign Roles-->Manage Roles。

② Global roles,用来分配全局策略,这里我们创建test_role,只有可读权限。

创建test_role角色

test_role角色赋予全局可读权限。

③ Item roles,用来分配项目权限,比如ITesterA用户只能访问项目A,ITesterB用户只能访问项目B。

test_projectA角色只能看到以projectA-开头的视图与项目。

test_projectB角色只能看到以projectB-开头的视图与项目。

温馨提示:设置完后,点击保存。

分配角色

① 首页,依次点击系统管理-->Manage and Assign Roles-->Assign Roles。

② Global roles,分别添加我们一开始准备的两个账号并分配角色。

添加ITesterA、ITesterB用户。

为 ITesterA、ITesterB用户分配全局可读角色。

③ Item roles,添加ITesterA、ITesterB用户,并分配项目角色权限。

添加ITesterA、ITesterB用户。

为 ITesterA、ITesterB用户分配不同项目权限。

温馨提示:设置完后,点击保存。

验证权限

① 首页,新建任务,分别创建projectA-1,projectB-1两个任务。

管理员账号,查看的任务如下:

② 接下来我们分别登录ITesterA用户、ITesterB用户,验证权限。

ITesterA用户登录后,只能看到projectA-1的任务。

ITesterB用户登录后,只能看到projectB-1的任务。

今天的Jenkins用户权限控制介绍到此,后续会继续介绍更多Jenkins系列文章,敬请持续关注。

更多系列文章

敬请期待


我是CoCo,计算机科学与技术专业,深漂大厂互联网民工(女),坐标深圳。5年工作经验,3年持续输出技术文。ITester软件测试小栈(ID:ITestingA)号主,专注于软件测试技术和宝藏干货分享,每周准时更新原创技术文章,每月不定期赠送技术书籍,愿我们在更高处相逢。喜欢记得星标⭐我,每周及时获得最新推送,第三方转载请注明出处。

想获取更多最新干货内容

快来星标 置顶 关注

三、添加node

启动方式选择--》 通过java web启动代理 --》选择 Use WebSocket

添加后保存,显示连接认证信息,和agent启动方法

四、节点服务器上启动前,需要安装jdk java环境

1、简单启动

验证节点链接是否正常

切换工作目录

cd /home/jenkins/workspec

下载agent.jar包

wget https://jenkinswh.uniontech.com/jnlpJars/agent.jar

验证文件

echo f6b23ae961a2d2b028d446df7b1ebf93ff6625b504dd4ce2 > secret-file

启动agent

setsid java -jar agent.jar -jnlpUrl https://jenkinswh.uniontech.com/computer/arm-kernel-build-31-85/slave-agent.jnlp -secret @secret-file -workDir "/home/jenkins/workspec" > /dev/null &

启动日志路径在工作目录下的 remoting/logs/下

简单启动,默认在前台,而且无法开机自启。 因什么原因挂掉以后,也不会自动重启。 所以,这只是用来验证的启动方式,不推荐正式使用

2、systemd启动

使用systemd作为守护进程

下载agent.jar

切换工作目录

sudo mkdir /home/jenkins/workspace

cd /home/jenkins/workspace

下载agent.jar包

sudo wget https://jenkinswh.uniontech.com/jnlpJars/agent.jar

sudo chmod +x agent.jar

添加

echo f6b23ae961a2d2b028dasdf446df7b1ebf93fcbeaa5695c8a > secret-file

准备env.sh

在sudo vim/home/jenkins/workspace/jenkins_env中,写入以下环境变量:

JNLP_URL=https://jenkinswh.uniontech.com/computer/arm-kernel-build-31-85/slave-agent.jnlp

JNLP_SECRET=f6b23ae961a2d2b028d446df7b1eadfasf3fcbeac8a54ce2

JNLP_WORKDIR=/home/jenkins/workspace

其中,JNLP_URL和JNLP_SECRET需要根据节点信息而修改。

配置systemd

新增文件/etc/systemd/system/jenkins-agent.service

jenkins添加jnlp-slave节点

一、前言有时候,jenkins只提供web访问,master节点与node节点无法通过ssh访问,所以无法通ssh的方式添加node,于是只能通过启动java

  • 下一篇Jenkins系列-权限管理

    Jenkins系列-权限管理

    在实际工作中,存在多个团队都需要Jenkins来实现持续交付,但是又希望不同团队之间进行隔离,每个项目有自己的view,只能看到自己项目的jenkinsjo