从零开始配置Jenkins(三)——用户权限管理
2016-01-21 16:48
453 查看
背景
最近项目管理中需要对jenkins的权限进行区分和限定,就研究了一下下。顺道把用户和权限这块的内容分享给大家。
用户
要想创建用户,需要先设定允许用户注册。
在系统设置,Configure Global Security下
设置完成后,进入“管理用户”,就可以创建用户了。
查看用户列表
用户这块基本上就这点东西,其他编辑操作也都很简单,接下来就是配置权限了。
权限
同样,打开Configure Global Security
这里主要通过授权策略来管理,总共四个选项,下面大致介绍下。
1)没有权限限制
两种情况:任何用户,特定用户可以做任何事
对应的配置文件config.xml
有人会问,留这个选择干嘛,相当于没有权限管理嘛。小编亲身经历告诉大家,要不是这个设置,现在jenkins还瘫着呢。如果不小心将admin用户权限也回收了,只能来狠的了,进入jenkins的安装目录,将config文件替换成上面的配置就可以解决了。
2)安全矩阵
这块是最好玩的了,项目中目前用的是这种配置。这种配置细化了权限,划分为Overall,Credentials(凭证),Slave(从节点),Job,Run,View等。
Credentials
用来主从节点连接时的配置。
它的权限包括:创建、删除、更新等
Slave
从节点的相关操作,包括断开、连接、创建等。
Job
对应每一个maven项目,操作包括:构建、编辑配置、删除等
View
视图模块,用来管理Job。
在具体项目中,根据角色不同,可以勾选相应的配置。配置完成后,可在config.xml中查看。
小编把能看懂的加了点注释,大家感兴趣可以瞅瞅。
最后补充一点,jenkins的权限真的做的不错,即使我们的需求怎么变,他都有办法解决。比如设定每个子系统只看自己那块,这个需要jenkins插件完成不同角色查看不同jobs。
最近项目管理中需要对jenkins的权限进行区分和限定,就研究了一下下。顺道把用户和权限这块的内容分享给大家。
用户
要想创建用户,需要先设定允许用户注册。
在系统设置,Configure Global Security下
设置完成后,进入“管理用户”,就可以创建用户了。
查看用户列表
用户这块基本上就这点东西,其他编辑操作也都很简单,接下来就是配置权限了。
权限
同样,打开Configure Global Security
这里主要通过授权策略来管理,总共四个选项,下面大致介绍下。
1)没有权限限制
两种情况:任何用户,特定用户可以做任何事
对应的配置文件config.xml
[code]<useSecurity>true</useSecurity> <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/> <securityRealm class="hudson.security.HudsonPrivateSecurityRealm"> <disableSignup>false</disableSignup> <enableCaptcha>false</enableCaptcha> </securityRealm>
有人会问,留这个选择干嘛,相当于没有权限管理嘛。小编亲身经历告诉大家,要不是这个设置,现在jenkins还瘫着呢。如果不小心将admin用户权限也回收了,只能来狠的了,进入jenkins的安装目录,将config文件替换成上面的配置就可以解决了。
2)安全矩阵
这块是最好玩的了,项目中目前用的是这种配置。这种配置细化了权限,划分为Overall,Credentials(凭证),Slave(从节点),Job,Run,View等。
Credentials
用来主从节点连接时的配置。
它的权限包括:创建、删除、更新等
Slave
从节点的相关操作,包括断开、连接、创建等。
Job
对应每一个maven项目,操作包括:构建、编辑配置、删除等
View
视图模块,用来管理Job。
在具体项目中,根据角色不同,可以勾选相应的配置。配置完成后,可在config.xml中查看。
小编把能看懂的加了点注释,大家感兴趣可以瞅瞅。
[code]<?xml version='1.0' encoding='UTF-8'?> <hudson> <disabledAdministrativeMonitors/> <version>1.644</version> <numExecutors>2</numExecutors> <mode>NORMAL</mode> <!--权限配置--> <useSecurity>true</useSecurity> <authorizationStrategy class="hudson.security.GlobalMatrixAuthorizationStrategy"> <permission>hudson.model.Computer.Build:admin</permission> <permission>hudson.model.Computer.Configure:admin</permission> <permission>hudson.model.Computer.Connect:admin</permission> <permission>hudson.model.Computer.Create:admin</permission> <permission>hudson.model.Computer.Delete:admin</permission> <permission>hudson.model.Computer.Disconnect:admin</permission> <permission>hudson.model.Hudson.Administer:admin</permission> <permission>hudson.model.Hudson.ConfigureUpdateCenter:admin</permission> <permission>hudson.model.Hudson.Read:admin</permission> <permission>hudson.model.Hudson.RunScripts:admin</permission> <permission>hudson.model.Hudson.UploadPlugins:admin</permission> <permission>hudson.model.Item.Build:admin</permission> <permission>hudson.model.Item.Cancel:admin</permission> <permission>hudson.model.Item.Configure:admin</permission> <permission>hudson.model.Item.Create:admin</permission> </authorizationStrategy> <securityRealm class="hudson.security.HudsonPrivateSecurityRealm"> <disableSignup>false</disableSignup> <enableCaptcha>false</enableCaptcha> </securityRealm> <disableRememberMe>false</disableRememberMe> <projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/> <workspaceDir>${JENKINS_HOME}/workspace/${ITEM_FULLNAME}</workspaceDir> <buildsDir>${ITEM_ROOTDIR}/builds</buildsDir> <markupFormatter class="hudson.markup.EscapedMarkupFormatter"/> <!--jdk配置--> <jdks> <jdk> <name>JDK</name> <home>/usr/local/jdk1.8</home> <properties/> </jdk> </jdks> <viewsTabBar class="hudson.views.DefaultViewsTabBar"/> <myViewsTabBar class="hudson.views.DefaultMyViewsTabBar"/> <clouds/> <quietPeriod>5</quietPeriod> <scmCheckoutRetryCount>0</scmCheckoutRetryCount> <!--视图--> <views> <hudson.model.AllView> <owner class="hudson" reference="../../.."/> <name>All</name> <filterExecutors>false</filterExecutors> <filterQueue>false</filterQueue> <properties class="hudson.model.View$PropertyList"/> </hudson.model.AllView> <!--视图--> <listView> <owner class="hudson" reference="../../.."/> <name>itoo-basic-225</name> <filterExecutors>false</filterExecutors> <filterQueue>false</filterQueue> <properties class="hudson.model.View$PropertyList"/> <!--Job,对应每个maven项目--> <jobNames> <comparator class="hudson.util.CaseInsensitiveComparator"/> <string>itoo-base-parent</string> <string>itoo-basic-api</string> <string>itoo-basic-course-core</string> <string>itoo-basic-course-ear</string> <string>itoo-basic-course-web</string> </jobNames> <jobFilters/> <columns> <hudson.views.StatusColumn/> <hudson.views.WeatherColumn/> <hudson.views.JobColumn/> <hudson.views.LastSuccessColumn/> <hudson.views.LastFailureColumn/> <hudson.views.LastDurationColumn/> <hudson.views.BuildButtonColumn/> </columns> <recurse>false</recurse> </listView> <!--视图--> <listView> <owner class="hudson" reference="../../.."/> <name>platform</name> <filterExecutors>false</filterExecutors> <filterQueue>false</filterQueue> <properties class="hudson.model.View$PropertyList"/> <jobNames> <comparator class="hudson.util.CaseInsensitiveComparator" reference="../../../listView/jobNames/comparator"/> <string>itoo-base</string> <string>itoo-easyui</string> <string>itoo-excelV2.0-api</string> <string>itoo-root</string> </jobNames> <jobFilters/> <columns> <hudson.views.StatusColumn/> <hudson.views.WeatherColumn/> <hudson.views.JobColumn/> <hudson.views.LastSuccessColumn/> <hudson.views.LastFailureColumn/> <hudson.views.LastDurationColumn/> <hudson.views.BuildButtonColumn/> </columns> <recurse>false</recurse> </listView> </views> <primaryView>All</primaryView> <slaveAgentPort>0</slaveAgentPort> <label></label> <nodeProperties/> <globalNodeProperties/> </hudson>
最后补充一点,jenkins的权限真的做的不错,即使我们的需求怎么变,他都有办法解决。比如设定每个子系统只看自己那块,这个需要jenkins插件完成不同角色查看不同jobs。
相关文章推荐
- iOS游戏开发游戏功能之外的东西
- Object.defineProperties——MEAN开发后台的Model层
- 矩形覆盖
- HDU 2222 Keywords Search(AC自己主动机)
- Eclipse源代码分析
- MySQL 主从复制的原理和配置
- Ubuntu 查看系统驱动程序
- JQuery获取checkBox是否选中
- mac 终端 常用命令
- HBase
- Windows 窗体启动和关闭的事件顺序
- 关于Objective-C的内存管理小结
- PHP扩展开发(2) - VS2013环境搭建
- opencv数据结构-MAT结构详解
- http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx
- SSIS 关于并发的两个设置
- 进击的Android之ListView
- 11gR2 RAC时间同异常导致节点down掉问题处理
- c++ stl栈容器stack的pop(),push()等用法介绍及头文件
- CentOS7 Zabbix 安装