测试环境的 Jenkins 是开发和测试混用的,未做细粒度的权限控制,开发总是构建测试的任务(不提前打招呼),导致测试任务中断,故需要隔离开发和测试用户权限。
PS:我司是使用 Crowd 进行用户的权限管理,来实现所有办公软件的统一登录。
配置约定
用户组及权限
development
:开发人员组,查看开发环境相关的任务(比如:dev、dev2、dev3);test
:测试人员组,查看测试环境相关的任务(比如:sit、open、per);ops
:运维人员组,维护 Jenkins,分配 Admin 权限。实施步骤
development
(开发人员组)、test
(测试人员组)、ops
(运维组),并与 Jenkins 应用关联;Role-Based Strategy
,并配置角色、分配角色。Crowd 配置用户及用户组配置如下:
首先,插件管理中安装Crowd 2 Integration
、Role-based Authorization Strategy
插件。
Role-based Authorization Strategy
:https://plugins.jenkins.io/role-strategyCrowd 2 Integration
:https://plugins.jenkins.io/crowd2
具体操作细节可参考之前写的Atlassian 系列软件安装(Crowd+JIRA+Confluence+Bitbucket+Bamboo),Nexus3 集成 crowd 插件
说明
菜单路径:Manage Jenkins
--Security
--Manage and Assign Roles
Manage Roles(定义角色)
配置
说明
admin
--管理员权限;read
--仅配置只读权限;Assign Roles(分配角色)
配置
说明
development
配置开发环境的权限;test
配置测试环境的权限;ops
配置运维自建的权限(此处为了扩展,可以不分配,运维是 Admin,有所有权限)。