目录
一、系统环境
二、安装好jenkins
三、安装AD相关插件
四、配置AD认证
五、配置Manage and Assign Roles
1、配置Manage Roles
2、配置Item roles
3、配置Assign Roles
一、系统环境
Centos7-64 Jenkins 2.357(尽量升级到比较新的)
二、安装好jenkins
大家可以选择源码安装,也可以选择docker方式,这里就不细说了,安装jenkins比较简单
三、安装AD相关插件
需要安装二个插件,这里要注意的是,如果你的AD用的是开源的ldap,那得安装LDAP相关插件,我这里用户账号系统用的是微软的AD,所以安装是AD插件,一定不能搞错,不然到时候怎么配都连不上,这里是个坑。
Active Directory plugin
Role-based Authorization Strategy //这个权限策略设置插件,这个插件有什么好处呢,可以设置每个人对哪些工程项目的权限
安装完两个插件,在Manage Jenkins-->Configure Global Security-->Security Realm里可以看到
Active Directory功能模块、Manage Jenkins-->Manage and Assign Roles功能模块
四、配置AD认证
Manage Jenkins-->Configure Global Security-->Security Realm
Domain Name:就是AD的域名
Domain Controller:就是AD域的控制器,可以填IP,格式就是:xxx.cn:389就可以,前面不需要加ldap,跟LDAP的写法不一样
Bind DN:就是可以取以账号的用户名
Bind Password:就是前面账号的密码
加密码传输都取消,除非你的AD确实配了https证书了。不然不要钩选
配好后可以点一下Test Domain功能,提示”Success“,代表配置成功了。
这里着重讲一下Authorization为什么要选”Anyone can do anything“,因为如果我们前面的AD还没有配成功,如果也没有选”Anyone can do anything“,这时候点保存,退出了,这时很可能你就无法再进入jenkins系统 了,所以为了保险。当然如果确实没有配对,导致无法进入jenkins系统,也有方法
ssh登录jenkins所在的服务器,进入jenkins主代码目录,找到config.xml
找到UseSecurity把true,设为False,把authorizationStrategy这行删除,然后保存,重启jenkins
vim config.xml
<?xml version='1.1' encoding='UTF-8'?>
<hudson>
<disabledAdministrativeMonitors>
<string>jenkins.diagnostics.ControllerExecutorsNoAgents</string>
</disabledAdministrativeMonitors>
<version>2.357</version>
<numExecutors>2</numExecutors>
<mode>NORMAL</mode>
<useSecurity>true</useSecurity> //把这个true设置为False
<authorizationStrategy class="com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy"> //删除这行
或者再配置AD认证功能之前,备份一下config.xml文件,配的有问题时,就恢复回去。
五、配置Manage and Assign Roles
在配置这个权限之前,要先Manage Jenkins-->Configure Global Security-->Security Realm里把Authorization选为Role-Based Strategy
进入Manage Jenkins--->Manage and Assign Roles
1、配置Manage Roles
这里建了两个组名:
一个是admin组,有最高权限,后面设置里只要从AD里找到的人,加到这个admin组,就有最高权限了。
一个是Test-user组,只有read权限,这里只要授权全部的read就可以。
2、配置Item roles
这个就是用来定义某某用户对哪些工程,有哪些权限
3、配置Assign Roles
进入Manage Jenkins -->Manage and Assign Roles-->Assign Roles
Global roles
Item roles