为了账号安全,请及时绑定邮箱和手机立即绑定

ldap配置系列二:jenkins集成ldap

标签:
Linux

ldap配置系列二:jenkins集成ldap

jenkins简介

jenkins是一个独立的、开放源码的自动化服务器,它可以用于自动化与构建、测试、交付或部署软件相关的各种任务。

jenkins官方文档: https://jenkins.io/doc/

jenkins安装

jenkins下载地址: https://jenkins.io/download/

复制代码

# jdk1.8下载
[root@VM_0_15_centos local]# wget http://download.linuxpanda.tech/java/jdk-8u172-linux-x64.tar.gz[root@VM_0_15_centos local]# tar xf jdk-8u172-linux-x64.tar.gz 
[root@VM_0_15_centos local]# cd jdk1.8.0_172/# jenkins安装
[root@VM_0_15_centos local]# yum install https://pkg.jenkins.io/redhat/jenkins-2.141-1.1.noarch.rpm# 配置修改
[root@VM_0_15_centos ~]# vim /etc/sysconfig/jenkins
JENKINS_JAVA_CMD="/usr/local/jdk1.8.0_172/bin/java"# 防火墙放行
[root@VM_0_15_centos ~]# firewall-cmd --permanent --add-port=8080/tcp 
[root@VM_0_15_centos ~]# firewall-cmd --reload
# 重启jenkins
[root@VM_0_15_centos ~]# systemctl restart jenkins
[root@VM_0_15_centos ~]# systemctl status jenkins
[root@VM_0_15_centos ~]# netstat -tunlp  |grep 8080# 访问对应的外网 
# jenkins.linuxpanda.tech:8080 安装必要的插件。

复制代码

 注意: 我在我的centos7服务器上面直接yum install jenkins是有问题,访问不了,yum install 特定的rpm包就可以了。 暂时不知道哪里的情况。

安装完毕后的主页为 :

https://img1.sycdn.imooc.com//5b9406890001b36113070564.jpg

 ldap准备

如果没有ldap服务器,可以参考 https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_liunx_52_ldap.html , 这里我使用ldapadmin.exe 这个小软件去管理ldap。

添加jenkins相关的测试账户和组

  1. group这个ou下面创建一个jenkins的ou。

  2. 在jenkins这个ou里面创建3个组,名为jenkins-admins,jenkins-editors,jenkins-users。

  3. 在ou=people下面创建4个账户,名为admin,test01,test02,test03,配置好邮箱和密码。

  4. 在三个组上面添加对应的用户, jenkins-admins组添加admin,test01用户, jenkins-editors组添加test02用户,jenkins-users组添加test03用户。

最终的组织图如下: 

 

jenkins集成ldap的配置

选择【jenkins】 -> 【系统管理】-> 【全局安全设置】

配置ldap为如下

 注意: 我上面的密码admin测试使用的密码为oracle。

关于ldap查询使用

复制代码

# 查询所有用户
[root@VM_0_15_centos ~]# ldapsearch  -LLL -w oracle -x -H ldap://ldap.linuxpanda.tech:389 -D"cn=admin,dc=linuxpanda,dc=tech" -b "ou=people,dc=linuxpanda,dc=tech" # 查询特定用户
[root@VM_0_15_centos ~]# ldapsearch  -LLL -w oracle -x -H ldap://ldap.linuxpanda.tech:389 -D"cn=admin,dc=linuxpanda,dc=tech" -b "ou=people,dc=linuxpanda,dc=tech" "uid=test01"dn: uid=test01,ou=people,dc=linuxpanda,dc=tech
objectClass: posixAccount
objectClass: top
objectClass: inetOrgPerson
gidNumber: 0givenName: test01
sn: test01displayName:: 5rWL6K+VMQ==uid: test01homeDirectory: /home/test01
loginShell: /bin/bashmail: test01@linuxpanda.techcn:: 5rWL6K+VMQ==uidNumber: 55545userPassword:: e1NIQX1ReE5rdGtVUHhIek52Mm9pQmQvYkc2NjNsQkk9

# 组查询
[root@VM_0_15_centos ~]# ldapsearch  -LLL -w oracle -x -H ldap://ldap.linuxpanda.tech:389 -D"cn=admin,dc=linuxpanda,dc=tech" -b "ou=jenkins,ou=group,dc=linuxpanda,dc=tech"  # 获取对应的组
[root@VM_0_15_centos ~]# ldapsearch  -LLL -w oracle -x -H ldap://ldap.linuxpanda.tech:389 -D"cn=admin,dc=linuxpanda,dc=tech" -b "ou=jenkins,ou=group,dc=linuxpanda,dc=tech"  "(& (cn=jenkins-admins) (| (objectclass=groupOfNames) (objectclass=groupOfUniqueNames) (objectclass=posixGroup)))"dn: cn=jenkins-admins,ou=jenkins,ou=group,dc=linuxpanda,dc=tech
objectClass: posixGroup
objectClass: top
cn: jenkins-admins
memberUid: test01
memberUid: admin
gidNumber: 40109

复制代码

ldap配置完毕了, 还是在说说ldap配合jenkins里面的用户权限和权限分配的事情吧, 不然只是ldap集成到jenkins也没有啥用啊,哈哈。

jenkins和ldap如何解决用户权限和授权问题

这个采用全局项目安全矩阵+项目安全矩阵+ldap认证组合来实现复杂的权限管理。

jenkins里面安装完毕默认推荐的插件后,提供有5种类授权策略:

  1. 任何用户可以做任何事(没有任何限制)

  2. 安全矩阵

  3. 登录用户可以做任何事

  4. 遗留模式

  5. 项目矩阵授权策略

我们选择项目矩阵授权策略,具体操作步骤: 选择【jenkins】 -> 【系统管理】-> 【全局安全设置 】,选择项目矩阵授权策略。

然后在全局的安全设置页面给我们的三个组添加进去,并配置下各个组的权限。

配置如下图的权限设置

这是一个全局的配置,特定组只能按照最小的权限授权,额外的权限可以在具体的项目权限矩阵里面在添加。 

如果用户在ldap里面添加到jenkins-admins这个组,就是拥有所有的权限了,这个组一般只能运维人员和部门老大加入。

如果用户在ldap里面添加到了jenkins-editors这个组,就拥有上图勾选的权限,这个组的成员可以完成jenkins配置项的修改。这个组一般不对任何人开放,可能给前段或者后端的开发老大开下。

如果用户在ldap里面添加到了jenkins-users这个组,就拥有了read权限,这个read是jenkins里面的很基础的权限,没有这个权限就登不进jenkins的,这个组一般是开发人员加入。 

 

上面只是一个全局层面的一个权限设置, 对于一个开发人员来说, 他能发布的项目只能是他负责的项目的,这个时候还是需要在具体的jenkins项目配置里面开启项目安全这个选项,并添加特定的具体的开发到这个列表里面,并授予权限。

 

 

这样就可以详细给用户授权了。

原文出处:https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_liunx_52_ldap_for_jenkins.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消