ldap配置系列二:jenkins集成ldap
ldap配置系列二:jenkins集成ldap
jenkins簡介
jenkins是一個(gè)獨(dú)立的、開放源碼的自動化服務(wù)器,它可以用于自動化與構(gòu)建、測試、交付或部署軟件相關(guān)的各種任務(wù)。
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# 訪問對應(yīng)的外網(wǎng) # jenkins.linuxpanda.tech:8080 安裝必要的插件。?注意: 我在我的centos7服務(wù)器上面直接yum install jenkins是有問題,訪問不了,yum install 特定的rpm包就可以了。 暫時(shí)不知道哪里的情況。
安裝完畢后的主頁為 :
?ldap準(zhǔn)備
如果沒有l(wèi)dap服務(wù)器,可以參考?https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_liunx_52_ldap.html?, 這里我使用ldapadmin.exe?這個(gè)小軟件去管理ldap。
添加jenkins相關(guān)的測試賬戶和組
最終的組織圖如下:?
?
jenkins集成ldap的配置
選擇【jenkins】 -> 【系統(tǒng)管理】-> 【全局安全設(shè)置】
配置ldap為如下
?注意: 我上面的密碼admin測試使用的密碼為oracle。
關(guān)于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: 0 givenName: test01 sn: test01 displayName:: 5rWL6K+VMQ== uid: test01 homeDirectory: /home/test01 loginShell: /bin/bash mail: test01@linuxpanda.tech cn:: 5rWL6K+VMQ== uidNumber: 55545 userPassword:: 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" # 獲取對應(yīng)的組 [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: 40109ldap配置完畢了, 還是在說說ldap配合jenkins里面的用戶權(quán)限和權(quán)限分配的事情吧, 不然只是ldap集成到j(luò)enkins也沒有啥用啊,哈哈。
jenkins和ldap如何解決用戶權(quán)限和授權(quán)問題
這個(gè)采用全局項(xiàng)目安全矩陣+項(xiàng)目安全矩陣+ldap認(rèn)證組合來實(shí)現(xiàn)復(fù)雜的權(quán)限管理。
jenkins里面安裝完畢默認(rèn)推薦的插件后,提供有5種類授權(quán)策略:
我們選擇項(xiàng)目矩陣授權(quán)策略,具體操作步驟: 選擇【jenkins】 -> 【系統(tǒng)管理】-> 【全局安全設(shè)置 】,選擇項(xiàng)目矩陣授權(quán)策略。
然后在全局的安全設(shè)置頁面給我們的三個(gè)組添加進(jìn)去,并配置下各個(gè)組的權(quán)限。
配置如下圖的權(quán)限設(shè)置
這是一個(gè)全局的配置,特定組只能按照最小的權(quán)限授權(quán),額外的權(quán)限可以在具體的項(xiàng)目權(quán)限矩陣?yán)锩嬖谔砑印?
如果用戶在ldap里面添加到j(luò)enkins-admins這個(gè)組,就是擁有所有的權(quán)限了,這個(gè)組一般只能運(yùn)維人員和部門老大加入。
如果用戶在ldap里面添加到了jenkins-editors這個(gè)組,就擁有上圖勾選的權(quán)限,這個(gè)組的成員可以完成jenkins配置項(xiàng)的修改。這個(gè)組一般不對任何人開放,可能給前段或者后端的開發(fā)老大開下。
如果用戶在ldap里面添加到了jenkins-users這個(gè)組,就擁有了read權(quán)限,這個(gè)read是jenkins里面的很基礎(chǔ)的權(quán)限,沒有這個(gè)權(quán)限就登不進(jìn)jenkins的,這個(gè)組一般是開發(fā)人員加入。?
?
上面只是一個(gè)全局層面的一個(gè)權(quán)限設(shè)置, 對于一個(gè)開發(fā)人員來說, 他能發(fā)布的項(xiàng)目只能是他負(fù)責(zé)的項(xiàng)目的,這個(gè)時(shí)候還是需要在具體的jenkins項(xiàng)目配置里面開啟項(xiàng)目安全這個(gè)選項(xiàng),并添加特定的具體的開發(fā)到這個(gè)列表里面,并授予權(quán)限。
?
?
這樣就可以詳細(xì)給用戶授權(quán)了。
?
總結(jié)
以上是生活随笔為你收集整理的ldap配置系列二:jenkins集成ldap的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: time、random以及序列化模块
- 下一篇: 使用redis镜像